]> granicus.if.org Git - vim/commitdiff
patch 7.4.2025 v7.4.2025
authorBram Moolenaar <Bram@vim.org>
Sun, 10 Jul 2016 21:16:09 +0000 (23:16 +0200)
committerBram Moolenaar <Bram@vim.org>
Sun, 10 Jul 2016 21:16:09 +0000 (23:16 +0200)
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.

src/gui_gtk_x11.c
src/screen.c
src/version.c

index 39b918ab833298bc852604fb67b0ea8229f06151..9437ed3b178c5d34d9aebbfe5756bc72feac8fc5 100644 (file)
@@ -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();
     }
 }
 
index 7c4ee3064d86bb2523f536326838d9661383512d..04a0da9eb5befc2115bad2f8f792c7a4c93418d7 100644 (file)
@@ -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. */
index 1a7ff06bac8886515ab8b82041099f35b4dcd0a6..67f8b653e17f4127df8d357c305bb7e7c5d9177b 100644 (file)
@@ -758,6 +758,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2025,
 /**/
     2024,
 /**/