summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-07-10 23:16:09 +0200
committerBram Moolenaar <Bram@vim.org>2016-07-10 23:16:09 +0200
commitda3a77d9ec28407b8fa2aa014e76944d0a525662 (patch)
tree5ccf7a4e599271b5d3d846d71e1318f4351e6d1f
parent7c0a2f367f2507669560b1a66423155c70d2e75b (diff)
patch 7.4.2025v7.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.
-rw-r--r--src/gui_gtk_x11.c5
-rw-r--r--src/screen.c2
-rw-r--r--src/version.c2
3 files changed, 8 insertions, 1 deletions
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index 39b918ab83..9437ed3b17 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 7c4ee3064d..04a0da9eb5 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 1a7ff06bac..67f8b653e1 100644
--- a/src/version.c
+++ b/src/version.c
@@ -759,6 +759,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2025,
+/**/
2024,
/**/
2023,