[vte/vte-0-40] widget: Invalidate cursor on style change



commit d180a23522ca2ceb57a0f76e5581f5804808dfd0
Author: Egmont Koblinger <egmont gmail com>
Date:   Wed Mar 2 12:42:08 2016 +0100

    widget: Invalidate cursor on style change
    
    https://bugzilla.gnome.org/show_bug.cgi?id=762963
    (cherry picked from commit a633f57e05dc30f444c5407ecb30b1bd67754ff4)

 src/vte.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
---
diff --git a/src/vte.c b/src/vte.c
index a155e6b..3c33e76 100644
--- a/src/vte.c
+++ b/src/vte.c
@@ -3691,6 +3691,7 @@ vte_terminal_process_incoming(VteTerminal *terminal)
        VteScreen *screen;
        VteVisualPosition cursor;
        gboolean cursor_visible;
+        VteCursorStyle cursor_style;
        GdkPoint bbox_topleft, bbox_bottomright;
        gunichar *wbuf, c;
        long wcount, start, delta;
@@ -3715,6 +3716,7 @@ vte_terminal_process_incoming(VteTerminal *terminal)
        /* Save the current cursor position. */
         cursor = screen->cursor;
        cursor_visible = terminal->pvt->cursor_visible;
+        cursor_style = terminal->pvt->cursor_style;
 
         in_scroll_region = terminal->pvt->scrolling_restricted
             && (screen->cursor.row >= (screen->insert_delta + terminal->pvt->scrolling_region.start))
@@ -4074,7 +4076,8 @@ next_match:
                _vte_check_cursor_blink(terminal);
                /* Signal that the cursor moved. */
                vte_terminal_queue_cursor_moved(terminal);
-       } else if (cursor_visible != terminal->pvt->cursor_visible) {
+        } else if ((cursor_visible != terminal->pvt->cursor_visible) ||
+                   (cursor_style != terminal->pvt->cursor_style)) {
                _vte_invalidate_cell(terminal, cursor.col, cursor.row);
                _vte_check_cursor_blink(terminal);
        }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]