From f6f9fdc477f1fe5565563db877713e06a94bde74 Mon Sep 17 00:00:00 2001 From: Pablo Barciela Date: Sun, 27 May 2018 03:26:07 +0200 Subject: pluma-notebook: Fix: unexpected behavior with dnd selected text Fixes https://github.com/mate-desktop/pluma/issues/329 --- pluma/pluma-notebook.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/pluma/pluma-notebook.c b/pluma/pluma-notebook.c index 5936ed82..1b84bdb7 100644 --- a/pluma/pluma-notebook.c +++ b/pluma/pluma-notebook.c @@ -83,6 +83,7 @@ static void move_current_tab_to_another_notebook (PlumaNotebook *src, /* Local variables */ static GdkCursor *cursor = NULL; static gboolean leftdown = FALSE; +static gboolean drag_ready = FALSE; /* Signals */ enum @@ -493,7 +494,11 @@ motion_notify_cb (PlumaNotebook *notebook, event->x_root, event->y_root)) { - drag_start (notebook, (GdkEvent *) event); + if (drag_ready) + drag_start (notebook, (GdkEvent *) event); + else + drag_stop (notebook); + return TRUE; } @@ -618,6 +623,7 @@ button_release_cb (PlumaNotebook *notebook, /* This must be called even if a drag isn't happening */ drag_stop (notebook); + drag_ready = FALSE; return FALSE; } @@ -699,6 +705,15 @@ button_press_cb (PlumaNotebook *notebook, return FALSE; } +static gboolean +grab_focus_cb (PlumaNotebook *notebook, + GdkEventButton *event, + gpointer data) +{ + drag_ready = TRUE; + return FALSE; +} + /** * pluma_notebook_new: * @@ -789,10 +804,17 @@ pluma_notebook_init (PlumaNotebook *notebook) "button-press-event", (GCallback)button_press_cb, NULL); + g_signal_connect (notebook, "button-release-event", (GCallback)button_release_cb, NULL); + + g_signal_connect (notebook, + "grab-focus", + (GCallback)grab_focus_cb, + NULL); + gtk_widget_add_events (GTK_WIDGET (notebook), GDK_BUTTON1_MOTION_MASK); -- cgit v1.2.1