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
This commit is contained in:
Joaquim Rocha 2016-09-01 13:23:14 +02:00
parent 857997be8c
commit adabec7d25

View File

@ -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)