[gnome-builder/wip/chergert/completion] completion: fix row selection with small n-row sizes



commit 4d5ffedd41cb8cd6842d115f5d6580f0e39adc72
Author: Christian Hergert <chergert redhat com>
Date:   Thu May 10 22:17:45 2018 -0700

    completion: fix row selection with small n-row sizes

 src/libide/completion/ide-completion-list-box.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
---
diff --git a/src/libide/completion/ide-completion-list-box.c b/src/libide/completion/ide-completion-list-box.c
index ab84bb148..a0f973ec4 100644
--- a/src/libide/completion/ide-completion-list-box.c
+++ b/src/libide/completion/ide-completion-list-box.c
@@ -228,12 +228,16 @@ get_row_at_y (IdeCompletionListBox *self,
 {
   GtkAllocation alloc;
   guint offset;
+  guint n_items;
 
   gtk_widget_get_allocation (GTK_WIDGET (self), &alloc);
 
   offset = ide_completion_list_box_get_offset (self);
 
-  return offset + (y / (alloc.height / self->n_rows));
+  n_items = g_list_model_get_n_items (G_LIST_MODEL (self->context));
+  n_items = MAX (1, MIN (self->n_rows, n_items));
+
+  return offset + (y / (alloc.height / n_items));
 }
 
 static void


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