gdk/broadway: correct gdk_broadway_device_query_state() to return pointer
authorMaxim Zakharov <dp.maxime@gmail.com>
Wed, 21 Sep 2022 05:20:03 +0000 (15:20 +1000)
committerMaxim Zakharov <dp.maxime@gmail.com>
Wed, 21 Sep 2022 05:42:40 +0000 (15:42 +1000)
coordinates relative to the upper left corner of surface

gdk/broadway/gdkdevice-broadway.c

index 37be4fa1ef961d0bbec0da037a631db7199affa2..da4bc256deb92e2f16e2e8edef1186f14c223652 100644 (file)
@@ -84,6 +84,7 @@ gdk_broadway_device_query_state (GdkDevice         *device,
   gint32 device_root_x, device_root_y;
   guint32 mouse_toplevel_id;
   guint32 mask32;
+  int origin_x, origin_y;
 
   if (gdk_device_get_source (device) != GDK_SOURCE_MOUSE)
     return;
@@ -97,10 +98,12 @@ gdk_broadway_device_query_state (GdkDevice         *device,
                                     &device_root_y,
                                     &mask32);
 
+  gdk_surface_get_origin (surface, &origin_x, &origin_y);
+
   if (win_x)
-    *win_x = device_root_x;
+    *win_x = device_root_x - origin_x;
   if (win_y)
-    *win_y = device_root_y;
+    *win_y = device_root_y - origin_y;
   if (mask)
     *mask = mask32;
 }