summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backends/meta-cursor-renderer.c12
-rw-r--r--src/backends/meta-cursor-renderer.h1
-rw-r--r--src/wayland/meta-wayland-surface-role-cursor.c9
3 files changed, 18 insertions, 4 deletions
diff --git a/src/backends/meta-cursor-renderer.c b/src/backends/meta-cursor-renderer.c
index 27617ef92..6c0ec57a8 100644
--- a/src/backends/meta-cursor-renderer.c
+++ b/src/backends/meta-cursor-renderer.c
@@ -264,6 +264,18 @@ meta_cursor_renderer_set_position (MetaCursorRenderer *renderer,
update_cursor (renderer, priv->displayed_cursor);
}
+ClutterPoint
+meta_cursor_renderer_get_position (MetaCursorRenderer *renderer)
+{
+ MetaCursorRendererPrivate *priv =
+ meta_cursor_renderer_get_instance_private (renderer);
+
+ return (ClutterPoint) {
+ .x = priv->current_x,
+ .y = priv->current_y
+ };
+}
+
MetaCursorSprite *
meta_cursor_renderer_get_cursor (MetaCursorRenderer *renderer)
{
diff --git a/src/backends/meta-cursor-renderer.h b/src/backends/meta-cursor-renderer.h
index 8ac0fe79b..1691f4471 100644
--- a/src/backends/meta-cursor-renderer.h
+++ b/src/backends/meta-cursor-renderer.h
@@ -62,6 +62,7 @@ void meta_cursor_renderer_set_cursor (MetaCursorRenderer *renderer,
void meta_cursor_renderer_set_position (MetaCursorRenderer *renderer,
float x,
float y);
+ClutterPoint meta_cursor_renderer_get_position (MetaCursorRenderer *renderer);
void meta_cursor_renderer_force_update (MetaCursorRenderer *renderer);
MetaCursorSprite * meta_cursor_renderer_get_cursor (MetaCursorRenderer *renderer);
diff --git a/src/wayland/meta-wayland-surface-role-cursor.c b/src/wayland/meta-wayland-surface-role-cursor.c
index 1c8ba94e5..d118a8917 100644
--- a/src/wayland/meta-wayland-surface-role-cursor.c
+++ b/src/wayland/meta-wayland-surface-role-cursor.c
@@ -195,14 +195,15 @@ cursor_surface_role_is_on_logical_monitor (MetaWaylandSurfaceRole *role,
META_WAYLAND_SURFACE_ROLE_CURSOR (surface->role);
MetaWaylandSurfaceRoleCursorPrivate *priv =
meta_wayland_surface_role_cursor_get_instance_private (cursor_role);
- ClutterRect rect;
+ ClutterPoint point;
ClutterRect logical_monitor_rect;
- rect = meta_cursor_renderer_calculate_rect (priv->cursor_renderer,
- priv->cursor_sprite);
logical_monitor_rect =
meta_rectangle_to_clutter_rect (&logical_monitor->rect);
- return clutter_rect_intersection (&rect, &logical_monitor_rect, NULL);
+
+ point = meta_cursor_renderer_get_position (priv->cursor_renderer);
+
+ return clutter_rect_contains_point (&logical_monitor_rect, &point);
}
static void