[gtk] textview: Fix blinking block cursors



commit e345f9a4db48a1d06cd941e49b7d7d922ff19607
Author: Matthias Clasen <mclasen redhat com>
Date:   Fri Mar 12 19:44:31 2021 -0500

    textview: Fix blinking block cursors
    
    When we have a block cursor, we need to discard the
    cached node of the line containing the cursor, in order
    to get a blinking cursor.

 gtk/gtktextlayout.c | 7 +++++++
 1 file changed, 7 insertions(+)
---
diff --git a/gtk/gtktextlayout.c b/gtk/gtktextlayout.c
index 9c994137ae..027ae9ca74 100644
--- a/gtk/gtktextlayout.c
+++ b/gtk/gtktextlayout.c
@@ -4232,6 +4232,13 @@ gtk_text_layout_snapshot (GtkTextLayout      *layout,
                 selection_end_index = -1;
             }
 
+          if (line_display->node != NULL)
+            {
+              if (line_display->has_block_cursor &&
+                  gtk_widget_has_focus (widget))
+                g_clear_pointer (&line_display->node, gsk_render_node_unref);
+            }
+
           if (line_display->node == NULL)
             {
               gtk_snapshot_push_collect (snapshot);


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