[gtk: 35/60] x11: Fix return value of get_device_state




commit 9cddc36fe2b0fad5dc54732ae49afb42df0b278e
Author: Matthias Clasen <mclasen redhat com>
Date:   Wed Aug 26 16:20:34 2020 -0400

    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 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]