changeset 13503:5d345460c984 v8.0.1625

patch 8.0.1625: test_quotestar is flaky when run in GTK GUI commit https://github.com/vim/vim/commit/29dfa5af3c14406573d08609d2e95add4d6b45fb Author: Bram Moolenaar <Bram@vim.org> Date: Tue Mar 20 21:24:45 2018 +0100 patch 8.0.1625: test_quotestar is flaky when run in GTK GUI Problem: Test_quotestar is flaky when run in GTK GUI. Solution: Do not call lose_selection when invoked from selection_clear_event().
author Christian Brabandt <cb@256bit.org>
date Tue, 20 Mar 2018 21:30:07 +0100
parents 4e5d34df2740
children 0414a701eed9
files src/gui_gtk_x11.c src/version.c
diffstat 2 files changed, 13 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -1366,15 +1366,21 @@ key_release_event(GtkWidget *widget UNUS
  * Selection handlers:
  */
 
+/* Remember when clip_lose_selection was called from here, we must not call
+ * gtk_selection_owner_set() then. */
+static int in_selection_clear_event = FALSE;
+
     static gint
 selection_clear_event(GtkWidget		*widget UNUSED,
 		      GdkEventSelection	*event,
 		      gpointer		user_data UNUSED)
 {
+    in_selection_clear_event = TRUE;
     if (event->selection == clip_plus.gtk_sel_atom)
 	clip_lose_selection(&clip_plus);
     else
 	clip_lose_selection(&clip_star);
+    in_selection_clear_event = FALSE;
 
     return TRUE;
 }
@@ -7048,8 +7054,11 @@ clip_mch_request_selection(VimClipboard 
     void
 clip_mch_lose_selection(VimClipboard *cbd UNUSED)
 {
-    gtk_selection_owner_set(NULL, cbd->gtk_sel_atom, gui.event_time);
-    gui_mch_update();
+    if (!in_selection_clear_event)
+    {
+	gtk_selection_owner_set(NULL, cbd->gtk_sel_atom, gui.event_time);
+	gui_mch_update();
+    }
 }
 
 /*
--- a/src/version.c
+++ b/src/version.c
@@ -767,6 +767,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1625,
+/**/
     1624,
 /**/
     1623,