summaryrefslogtreecommitdiff
path: root/gtk/gtkiconview.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2005-08-15 16:46:52 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2005-08-15 16:46:52 +0000
commit6fbbdeefd31b65822fca0a37dfb4cd48a8bdb6ad (patch)
treed206dfa3075841781d1540dbddeb8b86fe3c0677 /gtk/gtkiconview.c
parent24a55633ce7180ab51772bb11e05e5f0e9345f6e (diff)
downloadgtk+-6fbbdeefd31b65822fca0a37dfb4cd48a8bdb6ad.tar.gz
Handle paths of depth 0 gracefully. (#312796, Jonathan Blandford)
2005-08-15 Matthias Clasen <mclasen@redhat.com> * gtk/gtkiconview.c (gtk_icon_view_select_path) (gtk_icon_view_scroll_to_path): Handle paths of depth 0 gracefully. (#312796, Jonathan Blandford)
Diffstat (limited to 'gtk/gtkiconview.c')
-rw-r--r--gtk/gtkiconview.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/gtk/gtkiconview.c b/gtk/gtkiconview.c
index 30360fd3ce..f589fe5153 100644
--- a/gtk/gtkiconview.c
+++ b/gtk/gtkiconview.c
@@ -3917,15 +3917,16 @@ gtk_icon_view_scroll_to_path (GtkIconView *icon_view,
gfloat row_align,
gfloat col_align)
{
- GtkIconViewItem *item;
+ GtkIconViewItem *item = NULL;
g_return_if_fail (GTK_IS_ICON_VIEW (icon_view));
g_return_if_fail (path != NULL);
g_return_if_fail (row_align >= 0.0 && row_align <= 1.0);
g_return_if_fail (col_align >= 0.0 && col_align <= 1.0);
- item = g_list_nth (icon_view->priv->items,
- gtk_tree_path_get_indices(path)[0])->data;
+ if (gtk_tree_path_get_depth (path) > 0)
+ item = g_list_nth_data (icon_view->priv->items,
+ gtk_tree_path_get_indices(path)[0]);
if (!item)
return;
@@ -4979,17 +4980,18 @@ void
gtk_icon_view_select_path (GtkIconView *icon_view,
GtkTreePath *path)
{
- GList *l;
+ GtkIconViewItem *item = NULL;
g_return_if_fail (GTK_IS_ICON_VIEW (icon_view));
g_return_if_fail (icon_view->priv->model != NULL);
g_return_if_fail (path != NULL);
- l = g_list_nth (icon_view->priv->items,
- gtk_tree_path_get_indices(path)[0]);
+ if (gtk_tree_path_get_depth (path) > 0)
+ item = g_list_nth_data (icon_view->priv->items,
+ gtk_tree_path_get_indices(path)[0]);
- if (l != NULL)
- gtk_icon_view_select_item (icon_view, l->data);
+ if (item)
+ gtk_icon_view_select_item (icon_view, item);
}
/**