From 82cdd4b90303fd829e183ac72c60676cd75c1b51 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 13 Dec 2008 05:28:21 +0000 Subject: [PATCH] Use the new order correctly. Patch by Li Yuan * gtk/gtkiconview.c (gtk_icon_view_accessible_model_rows_reordered): Use the new order correctly. Patch by Li Yuan svn path=/trunk/; revision=21878 --- ChangeLog | 8 ++++++++ gtk/gtkiconview.c | 11 ++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index c3f5c34028..4c6f4d8552 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-12-13 Matthias Clasen + + Bug 564212 – gtk_icon_view_accessible_model_rows_reordered explain + new_order in the wrong way + + * gtk/gtkiconview.c (gtk_icon_view_accessible_model_rows_reordered): + Use the new order correctly. Patch by Li Yuan + 2008-12-13 Matthias Clasen Bug 563835 – Typo in gtk_widget_has_screen() docs diff --git a/gtk/gtkiconview.c b/gtk/gtkiconview.c index 05ad6b5a6a..f22f70b78b 100644 --- a/gtk/gtkiconview.c +++ b/gtk/gtkiconview.c @@ -9003,20 +9003,29 @@ gtk_icon_view_accessible_model_rows_reordered (GtkTreeModel *tree_model, GtkIconViewItemAccessible *item; GList *items; AtkObject *atk_obj; + gint *order; + gint length, i; atk_obj = gtk_widget_get_accessible (GTK_WIDGET (user_data)); icon_view = GTK_ICON_VIEW (user_data); priv = gtk_icon_view_accessible_get_priv (atk_obj); + length = gtk_tree_model_iter_n_children (tree_model, NULL); + + order = g_new (gint, length); + for (i = 0; i < length; i++) + order [new_order[i]] = i; + items = priv->items; while (items) { info = items->data; item = GTK_ICON_VIEW_ITEM_ACCESSIBLE (info->item); - info->index = new_order[info->index]; + info->index = order[info->index]; item->item = g_list_nth_data (icon_view->priv->items, info->index); items = items->next; } + g_free (order); priv->items = g_list_sort (priv->items, (GCompareFunc)gtk_icon_view_accessible_item_compare);