[gimp] app: Copy dialogs list so we can remove while we iterate
- From: Martin Nordholts <martinn src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gimp] app: Copy dialogs list so we can remove while we iterate
- Date: Sun, 25 Oct 2009 19:31:46 +0000 (UTC)
commit d7c61bade91d23e0c2928089727dbf5485298979
Author: Martin Nordholts <martinn src gnome org>
Date: Sun Oct 25 20:35:49 2009 +0100
app: Copy dialogs list so we can remove while we iterate
app/gui/gimpuiconfigurer.c | 19 +++++--------------
1 files changed, 5 insertions(+), 14 deletions(-)
---
diff --git a/app/gui/gimpuiconfigurer.c b/app/gui/gimpuiconfigurer.c
index 2a5352f..102e8f8 100644
--- a/app/gui/gimpuiconfigurer.c
+++ b/app/gui/gimpuiconfigurer.c
@@ -141,10 +141,10 @@ gimp_ui_configurer_move_docks_to_columns (GimpUIConfigurer *ui_configurer,
GimpDialogFactory *dialog_factory,
GimpDockColumns *dock_columns)
{
- GList *iter = NULL;
- GList *for_removal = NULL;
+ GList *dialogs = g_list_copy (dialog_factory->open_dialogs);
+ GList *iter = NULL;
- for (iter = dialog_factory->open_dialogs; iter; iter = iter->next)
+ for (iter = dialogs; iter; iter = iter->next)
{
GimpDockWindow *dock_window = NULL;
GimpDock *dock = NULL;
@@ -163,18 +163,9 @@ gimp_ui_configurer_move_docks_to_columns (GimpUIConfigurer *ui_configurer,
gimp_dock_columns_add_dock (dock_columns, dock, -1);
g_object_unref (dock);
- /* Queue for removal from the dialog factory. (We can't remove
- * while we iterate)
- */
- for_removal = g_list_prepend (for_removal, dock_window);
- }
-
- for (iter = for_removal; iter; iter = iter->next)
- {
- GtkWidget *dock_window = GTK_WIDGET (iter->data);
-
/* Kill the dock window, we don't need it any longer */
- gimp_dialog_factory_remove_dialog (dialog_factory, dock_window);
+ gimp_dialog_factory_remove_dialog (dialog_factory,
+ GTK_WIDGET (dock_window));
gtk_widget_destroy (GTK_WIDGET (dock_window));
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]