From cf257e667608c73efb56cae498bebcde1daacc6f Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 26 Aug 2020 16:20:34 -0400 Subject: [PATCH] x11: Fix return value of get_device_state We need to look a the position, not the child surface. --- gdk/x11/gdksurface-x11.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/gdk/x11/gdksurface-x11.c b/gdk/x11/gdksurface-x11.c index 2c3cdf86b4..d7ed8d034a 100644 --- a/gdk/x11/gdksurface-x11.c +++ b/gdk/x11/gdksurface-x11.c @@ -2659,19 +2659,18 @@ gdk_x11_surface_get_frame_extents (GdkSurface *surface, } static gboolean -gdk_x11_surface_get_device_state (GdkSurface *surface, - GdkDevice *device, - double *x, - double *y, - GdkModifierType *mask) +gdk_x11_surface_get_device_state (GdkSurface *surface, + GdkDevice *device, + double *x, + double *y, + GdkModifierType *mask) { - GdkSurface *child; - if (GDK_SURFACE_DESTROYED (surface)) return FALSE; - gdk_x11_device_xi2_query_state (device, surface, &child, x, y, mask); - return child != NULL; + gdk_x11_device_xi2_query_state (device, surface, NULL, x, y, mask); + + return *x >= 0 && *y >= 0 && *x < surface->width && *y < surface->height; } static void