0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

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.
This commit is contained in:
Bram Moolenaar
2016-07-10 23:16:09 +02:00
parent 7c0a2f367f
commit da3a77d9ec
3 changed files with 8 additions and 1 deletions

View File

@@ -867,7 +867,10 @@ gui_mch_stop_blink(void)
blink_timer = 0; blink_timer = 0;
} }
if (blink_state == BLINK_OFF) if (blink_state == BLINK_OFF)
{
gui_update_cursor(TRUE, FALSE); gui_update_cursor(TRUE, FALSE);
gui_mch_flush();
}
blink_state = BLINK_NONE; blink_state = BLINK_NONE;
} }
@@ -902,6 +905,7 @@ blink_cb(gpointer data UNUSED)
(GtkFunction) blink_cb, NULL); (GtkFunction) blink_cb, NULL);
#endif #endif
} }
gui_mch_flush();
return FALSE; /* don't happen again */ return FALSE; /* don't happen again */
} }
@@ -934,6 +938,7 @@ gui_mch_start_blink(void)
#endif #endif
blink_state = BLINK_ON; blink_state = BLINK_ON;
gui_update_cursor(TRUE, FALSE); gui_update_cursor(TRUE, FALSE);
gui_mch_flush();
} }
} }

View File

@@ -757,7 +757,7 @@ update_screen(int type)
if (gui.in_use) if (gui.in_use)
{ {
out_flush(); /* required before updating the cursor */ 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() /* Put the GUI position where the cursor was, gui_update_cursor()
* uses that. */ * uses that. */

View File

@@ -758,6 +758,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
2025,
/**/ /**/
2024, 2024,
/**/ /**/