From adabec7d2565ccd55940b3589e00407bcbf439a9 Mon Sep 17 00:00:00 2001 From: Joaquim Rocha Date: Thu, 1 Sep 2016 13:23:14 +0200 Subject: [PATCH] listbox: Avoid crashing on page down if the list has few rows The code always assumed that getting a row at a certain 'y' was possible but if the list box has more empty space than rows then a valid row may not be retrieved. https://bugzilla.gnome.org/show_bug.cgi?id=770703 --- gtk/gtklistbox.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gtk/gtklistbox.c b/gtk/gtklistbox.c index 57d1f336e8..d86c2908cd 100644 --- a/gtk/gtklistbox.c +++ b/gtk/gtklistbox.c @@ -3041,10 +3041,11 @@ gtk_list_box_move_cursor (GtkListBox *box, height = gtk_widget_get_allocated_height (GTK_WIDGET (box)); end_y = CLAMP (start_y + page_size * count, 0, height - 1); row = gtk_list_box_get_row_at_y (box, end_y); - iter = ROW_PRIV (row)->iter; if (row == priv->cursor_row) { + iter = ROW_PRIV (row)->iter; + /* Move at least one row. This is important when the cursor_row's height is * greater than page_size */ if (count < 0)