# HG changeset patch # User Christian Brabandt # Date 1521577807 -3600 # Node ID 5d345460c98420e11f6377ad66677f2779a28c35 # Parent 4e5d34df2740958aa981db7898f027c7db3e93e6 patch 8.0.1625: test_quotestar is flaky when run in GTK GUI commit https://github.com/vim/vim/commit/29dfa5af3c14406573d08609d2e95add4d6b45fb Author: Bram Moolenaar 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(). diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c --- 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(); + } } /* diff --git a/src/version.c b/src/version.c --- 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,