From ebd9d7b57726edba05386d9d63326c9bc629d632 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 14 Feb 2020 18:17:13 -0500 Subject: [PATCH] x11: Stop relying on root coordinates in events The X11 dnd code was still using x_root/y_root in GdkEventMotion in a couple of places. Stop doing so, these field are going away soon. --- gdk/x11/gdkdrag-x11.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gdk/x11/gdkdrag-x11.c b/gdk/x11/gdkdrag-x11.c index fb341088c2..c369ca0316 100644 --- a/gdk/x11/gdkdrag-x11.c +++ b/gdk/x11/gdkdrag-x11.c @@ -2243,15 +2243,18 @@ gdk_drag_update (GdkDrag *drag, } static gboolean -gdk_dnd_handle_motion_event (GdkDrag *drag, - const GdkEventMotion *event) +gdk_dnd_handle_motion_event (GdkDrag *drag, + const GdkEvent *event) { GdkModifierType state; + int x_root, y_root; if (!gdk_event_get_state ((GdkEvent *) event, &state)) return FALSE; - gdk_drag_update (drag, event->x_root, event->y_root, state, + x_root = event->any.surface->x + event->motion.x; + y_root = event->any.surface->y + event->motion.y; + gdk_drag_update (drag, x_root, y_root, state, gdk_event_get_time ((GdkEvent *) event)); return TRUE; } @@ -2407,7 +2410,7 @@ gdk_x11_drag_handle_event (GdkDrag *drag, switch ((guint) event->any.type) { case GDK_MOTION_NOTIFY: - return gdk_dnd_handle_motion_event (drag, &event->motion); + return gdk_dnd_handle_motion_event (drag, event); case GDK_BUTTON_RELEASE: return gdk_dnd_handle_button_event (drag, &event->button); case GDK_KEY_PRESS: