diff --git a/src/backends/meta-cursor-renderer.c b/src/backends/meta-cursor-renderer.c index 0bdc59c15..f6470e66a 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