From 363f9c95715486106d188f56711afb941d00151f Mon Sep 17 00:00:00 2001 From: Paolo Borelli Date: Sun, 28 Feb 2016 15:05:32 +0100 Subject: [PATCH] gdkdisplay: get the pointer device from the default seat https://bugzilla.gnome.org/show_bug.cgi?id=762820 --- gdk/gdkdisplay.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c index 3e54ce8b48..f336c0e167 100644 --- a/gdk/gdkdisplay.c +++ b/gdk/gdkdisplay.c @@ -601,6 +601,7 @@ gdk_display_get_pointer (GdkDisplay *display, GdkModifierType *mask) { GdkScreen *default_screen; + GdkSeat *default_seat; GdkWindow *root; gdouble tmp_x, tmp_y; GdkModifierType tmp_mask; @@ -611,11 +612,12 @@ gdk_display_get_pointer (GdkDisplay *display, return; default_screen = gdk_display_get_default_screen (display); + default_seat = gdk_display_get_default_seat (display); /* We call _gdk_device_query_state() here manually instead of * gdk_device_get_position() because we care about the modifier mask */ - _gdk_device_query_state (display->core_pointer, + _gdk_device_query_state (gdk_seat_get_pointer (default_seat), gdk_screen_get_root_window (default_screen), &root, NULL, &tmp_x, &tmp_y, @@ -657,9 +659,13 @@ gdk_display_get_window_at_pointer (GdkDisplay *display, gint *win_x, gint *win_y) { + GdkDevice *pointer; + g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); - return gdk_device_get_window_at_position (display->core_pointer, win_x, win_y); + pointer = gdk_seat_get_pointer (gdk_display_get_default_seat (display)); + + return gdk_device_get_window_at_position (pointer, win_x, win_y); } static void @@ -2026,11 +2032,12 @@ gdk_display_warp_pointer (GdkDisplay *display, gint x, gint y) { + GdkDevice *pointer; + g_return_if_fail (GDK_IS_DISPLAY (display)); - gdk_device_warp (display->core_pointer, - screen, - x, y); + pointer = gdk_seat_get_pointer (gdk_display_get_default_seat (display)); + gdk_device_warp (pointer, screen, x, y); } gulong