From e345f9a4db48a1d06cd941e49b7d7d922ff19607 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 12 Mar 2021 19:44:31 -0500 Subject: [PATCH] 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);