From b84d37af4d3abaccc4e8dfa55b2750ebac495418 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 23 Nov 2011 17:49:46 -0500 Subject: [PATCH] GtkIconView: Fix a segfault Keynav on an empty iconview was causing segfaults. This was reported in https://bugzilla.gnome.org/show_bug.cgi?id=664456 --- gtk/gtkiconview.c | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/gtk/gtkiconview.c b/gtk/gtkiconview.c index e527dde40d..e12bd46582 100644 --- a/gtk/gtkiconview.c +++ b/gtk/gtkiconview.c @@ -3769,11 +3769,18 @@ gtk_icon_view_move_cursor_up_down (GtkIconView *icon_view, else list = g_list_last (icon_view->priv->items); - item = list ? list->data : NULL; + if (list) + { + item = list->data; - /* Give focus to the first cell initially */ - gtk_icon_view_set_cell_data (icon_view, item); - gtk_cell_area_focus (icon_view->priv->cell_area, direction); + /* Give focus to the first cell initially */ + gtk_icon_view_set_cell_data (icon_view, item); + gtk_cell_area_focus (icon_view->priv->cell_area, direction); + } + else + { + item = NULL; + } } else { @@ -3914,11 +3921,18 @@ gtk_icon_view_move_cursor_left_right (GtkIconView *icon_view, else list = g_list_last (icon_view->priv->items); - item = list ? list->data : NULL; + if (list) + { + item = list->data; - /* Give focus to the first cell initially */ - gtk_icon_view_set_cell_data (icon_view, item); - gtk_cell_area_focus (icon_view->priv->cell_area, direction); + /* Give focus to the first cell initially */ + gtk_icon_view_set_cell_data (icon_view, item); + gtk_cell_area_focus (icon_view->priv->cell_area, direction); + } + else + { + item = NULL; + } } else {