From efd065259d34710b053471cd6f7d9bf58f16b8fb Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Sat, 6 Jun 2020 13:04:32 +0200 Subject: [PATCH] backends: Drop GDK device querying code from MetaCursorTracker Clutter behavior is now equivalent to GDK's on X11, avoid poking to GDK here. Part-of: --- src/backends/meta-cursor-tracker.c | 58 +++--------------------------- 1 file changed, 5 insertions(+), 53 deletions(-) diff --git a/src/backends/meta-cursor-tracker.c b/src/backends/meta-cursor-tracker.c index caac5827d..f90fd768b 100644 --- a/src/backends/meta-cursor-tracker.c +++ b/src/backends/meta-cursor-tracker.c @@ -31,8 +31,6 @@ #include "backends/meta-cursor-tracker-private.h" -#include -#include #include #include "backends/meta-backend-private.h" @@ -464,36 +462,10 @@ meta_cursor_tracker_update_position (MetaCursorTracker *tracker, g_signal_emit (tracker, signals[CURSOR_MOVED], 0, new_x, new_y); } -static void -get_pointer_position_gdk (graphene_point_t *point, - int *mods) -{ - GdkSeat *gseat; - GdkDevice *gdevice; - GdkScreen *gscreen; - double x, y; - - gseat = gdk_display_get_default_seat (gdk_display_get_default ()); - gdevice = gdk_seat_get_pointer (gseat); - - /* Even if point is NULL we need this to get gscreen */ - gdk_device_get_position_double (gdevice, &gscreen, &x, &y); - - if (point) - { - point->x = x; - point->y = y; - } - - if (mods) - gdk_device_get_state (gdevice, - gdk_screen_get_root_window (gscreen), - NULL, (GdkModifierType*)mods); -} - -static void -get_pointer_position_clutter (graphene_point_t *point, - int *mods) +void +meta_cursor_tracker_get_pointer (MetaCursorTracker *tracker, + graphene_point_t *coords, + ClutterModifierType *mods) { ClutterSeat *seat; ClutterInputDevice *cdevice; @@ -501,27 +473,7 @@ get_pointer_position_clutter (graphene_point_t *point, seat = clutter_backend_get_default_seat (clutter_get_default_backend ()); cdevice = clutter_seat_get_pointer (seat); - if (point) - clutter_input_device_get_coords (cdevice, NULL, point); - - if (mods) - *mods = clutter_input_device_get_modifier_state (cdevice); -} - -void -meta_cursor_tracker_get_pointer (MetaCursorTracker *tracker, - graphene_point_t *coords, - ClutterModifierType *mods) -{ - /* We can't use the clutter interface when not running as a wayland compositor, - because we need to query the server, rather than using the last cached value. - OTOH, on wayland we can't use GDK, because that only sees the events - we forward to xwayland. - */ - if (meta_is_wayland_compositor ()) - get_pointer_position_clutter (coords, (int *) mods); - else - get_pointer_position_gdk (coords, (int *) mods); + clutter_seat_query_state (seat, cdevice, NULL, coords, mods); } void