summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Mader <robert.mader@posteo.de>2019-12-09 01:16:39 +0100
committerRobert Mader <robert.mader@posteo.de>2019-12-09 01:22:11 +0100
commita3cff0add1dec4db3ddc0a3dff8f41ff9e205b63 (patch)
treefdfeeb9cf40d81723b8db14845fa760c79caa320
parentc1146db2fee09a4a19ba38e4f9a6aefbd1a16d03 (diff)
downloadgtk+-a3cff0add1dec4db3ddc0a3dff8f41ff9e205b63.tar.gz
x11: Honor hotspot during drag cancel animation
Otherwise the icon "jumps" to the cursor position with its top left when the animation starts. This is especially visible if the dragged item is big, like when dragging mails in Thunderbird.
-rw-r--r--gdk/x11/gdkdnd-x11.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gdk/x11/gdkdnd-x11.c b/gdk/x11/gdkdnd-x11.c
index f335d502ce..e07fa10325 100644
--- a/gdk/x11/gdkdnd-x11.c
+++ b/gdk/x11/gdkdnd-x11.c
@@ -2613,8 +2613,10 @@ gdk_drag_anim_timeout (gpointer data)
gdk_window_show (context->drag_window);
gdk_window_move (context->drag_window,
- context->last_x + (context->start_x - context->last_x) * t,
- context->last_y + (context->start_y - context->last_y) * t);
+ (context->last_x - context->hot_x) +
+ (context->start_x - context->last_x) * t,
+ (context->last_y - context->hot_y) +
+ (context->start_y - context->last_y) * t);
gdk_window_set_opacity (context->drag_window, 1.0 - f);
return G_SOURCE_CONTINUE;