summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Hergert <chergert@redhat.com>2022-06-11 20:35:54 -0700
committerChristian Hergert <chergert@redhat.com>2022-06-12 10:14:48 -0700
commit945f01d6e73a1a10ec9346fd29230b51b220b859 (patch)
tree3b39c7f12aec990f9cb18a9ac77d67fad0565e63
parent5cebb4ac58b8440d45fa7b67068ef529ac17aaf2 (diff)
downloadgtksourceview-945f01d6e73a1a10ec9346fd29230b51b220b859.tar.gz
completion: avoid updates before visible row
But only when the offset will not change (added == removed).
-rw-r--r--gtksourceview/gtksourcecompletionlistbox.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gtksourceview/gtksourcecompletionlistbox.c b/gtksourceview/gtksourcecompletionlistbox.c
index b525c4f8..67531858 100644
--- a/gtksourceview/gtksourcecompletionlistbox.c
+++ b/gtksourceview/gtksourcecompletionlistbox.c
@@ -1075,9 +1075,14 @@ gtk_source_completion_list_box_items_changed_cb (GtkSourceCompletionListBox *sel
offset = gtk_source_completion_list_box_get_offset (self);
- /* Skip widget resize if results are after visible area */
- if (position >= offset + self->n_rows)
+ /* Skip widget resize if results are out of view and wont force our
+ * current results down.
+ */
+ if ((position >= offset + self->n_rows) ||
+ (removed == added && (position + added) < offset))
+ {
return;
+ }
gtk_source_completion_list_box_queue_update (self);
}