[gtk/wip/chergert/gtk4-textview-fix-selections] textlinedisplaycache: short-circuit y_range invalidation




commit 94d17a68093d623a07018a5279175cfcf56ec409
Author: Christian Hergert <chergert redhat com>
Date:   Sun Aug 2 16:35:50 2020 -0700

    textlinedisplaycache: short-circuit y_range invalidation
    
    If we have a y==-1 then we are generally invalidating the whole textview.
    For this case, we can just discard the entire GtkTextLineDisplay cache.
    
    Fixes #2975

 gtk/gtktextlinedisplaycache.c | 6 ++++++
 1 file changed, 6 insertions(+)
---
diff --git a/gtk/gtktextlinedisplaycache.c b/gtk/gtktextlinedisplaycache.c
index fa595644ff..91ce0d98e4 100644
--- a/gtk/gtktextlinedisplaycache.c
+++ b/gtk/gtktextlinedisplaycache.c
@@ -663,6 +663,12 @@ gtk_text_line_display_cache_invalidate_y_range (GtkTextLineDisplayCache *cache,
 
   STAT_INC (cache->inval_by_y_range);
 
+  if (y < 0)
+    {
+      gtk_text_line_display_cache_invalidate (cache);
+      return;
+    }
+
   btree = _gtk_text_buffer_get_btree (layout->buffer);
   iter = find_iter_at_at_y (cache, layout, y);
 


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