From c3c10edd090bb214aee517ab12a30ca3bbc26b77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nelson=20Ben=C3=ADtez=20Le=C3=B3n?= Date: Wed, 2 Aug 2017 19:03:28 +0500 Subject: [PATCH] textview: fix bug on DnD displaced limits of selection The fix of commit f2fd655754407103f8fb9b2c3e7586fb595ab917 should be confined to DnD coords only, because otherwise it causes the start and end of the selection to be displaced. https://bugzilla.gnome.org/show_bug.cgi?id=785736 --- gtk/gtktextview.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index e624d2703d..0b81975606 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -8265,9 +8265,6 @@ gtk_text_view_drag_motion (GtkWidget *widget, y > (target_rect.y + target_rect.height)) return FALSE; /* outside the text window, allow parent widgets to handle event */ - x -= target_rect.x; - y -= target_rect.y; - gtk_text_view_window_to_buffer_coords (text_view, GTK_TEXT_WINDOW_WIDGET, x, y, @@ -8327,8 +8324,11 @@ gtk_text_view_drag_motion (GtkWidget *widget, gtk_text_mark_set_visible (priv->dnd_mark, FALSE); } - priv->dnd_x = x; - priv->dnd_y = y; + /* DnD uses text window coords, so subtract extra widget + * coords that happen e.g. when displaying line numbers. + */ + priv->dnd_x = x - target_rect.x; + priv->dnd_y = y - target_rect.y; if (!priv->scroll_timeout) {