From: Bram Moolenaar Date: Sun, 10 Jul 2016 21:16:09 +0000 (+0200) Subject: patch 7.4.2025 X-Git-Tag: v7.4.2025 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=da3a77d9ec28407b8fa2aa014e76944d0a525662;p=vim patch 7.4.2025 Problem: The cursor blinking stops or is irregular when receiving date over a channel and writing it in a buffer, and when updating the status line. (Ramel Eshed) Solution: Make it a bit better by flushing GUI output. Don't redraw the cursor after updating the screen if the blink state is off. --- diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c index 39b918ab8..9437ed3b1 100644 --- a/src/gui_gtk_x11.c +++ b/src/gui_gtk_x11.c @@ -867,7 +867,10 @@ gui_mch_stop_blink(void) blink_timer = 0; } if (blink_state == BLINK_OFF) + { gui_update_cursor(TRUE, FALSE); + gui_mch_flush(); + } blink_state = BLINK_NONE; } @@ -902,6 +905,7 @@ blink_cb(gpointer data UNUSED) (GtkFunction) blink_cb, NULL); #endif } + gui_mch_flush(); return FALSE; /* don't happen again */ } @@ -934,6 +938,7 @@ gui_mch_start_blink(void) #endif blink_state = BLINK_ON; gui_update_cursor(TRUE, FALSE); + gui_mch_flush(); } } diff --git a/src/screen.c b/src/screen.c index 7c4ee3064..04a0da9eb 100644 --- a/src/screen.c +++ b/src/screen.c @@ -757,7 +757,7 @@ update_screen(int type) if (gui.in_use) { out_flush(); /* required before updating the cursor */ - if (did_one) + if (did_one && !gui_mch_is_blink_off()) { /* Put the GUI position where the cursor was, gui_update_cursor() * uses that. */ diff --git a/src/version.c b/src/version.c index 1a7ff06ba..67f8b653e 100644 --- a/src/version.c +++ b/src/version.c @@ -758,6 +758,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2025, /**/ 2024, /**/