From ab0ba61800cb60e38272362f807db987b814a8d7 Mon Sep 17 00:00:00 2001 From: Christian Neumair Date: Sat, 22 Mar 2008 18:29:13 +0000 Subject: Do not try to hide zoom control if we are already destroyed. 2008-03-22 Christian Neumair * src/nautilus-navigation-window.c: (real_disconnect_content_view): Do not try to hide zoom control if we are already destroyed. * src/nautilus-spatial-window.c (real_close_slot): Do not assert that the slot is currently active. * src/nautilus-window.c (nautilus_window_destroy), (nautilus_window_close): Move slot close code from close() to destroy(). svn path=/branches/multiview/; revision=13969 --- ChangeLog | 14 +++++++++++++- src/nautilus-navigation-window.c | 7 ++++++- src/nautilus-spatial-window.c | 1 - src/nautilus-window.c | 24 ++++++++++++------------ 4 files changed, 31 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index 45880fa33..04a056da3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,16 @@ -2008-03-22 Christian Neumair +2008-03-22 Christian Neumair + + * src/nautilus-navigation-window.c: (real_disconnect_content_view): + Do not try to hide zoom control if we are already destroyed. + + * src/nautilus-spatial-window.c (real_close_slot): + Do not assert that the slot is currently active. + + * src/nautilus-window.c (nautilus_window_destroy), + (nautilus_window_close): + Move slot close code from close() to destroy(). + +2008-03-22 Christian Neumair * src/file-manager/fm-directory-view.c (hidden_files_mode_changed), (slot_active), (fm_directory_view_init), diff --git a/src/nautilus-navigation-window.c b/src/nautilus-navigation-window.c index bb6fb8406..bb0d5b4d8 100644 --- a/src/nautilus-navigation-window.c +++ b/src/nautilus-navigation-window.c @@ -1042,7 +1042,12 @@ real_disconnect_content_view (NautilusWindow *nautilus_window, G_CALLBACK (zoom_level_changed_callback), window); - gtk_widget_hide (window->zoom_control); + if (window->zoom_control != NULL) { + /* if we run in destroy(), the + * zoom control is already gone + */ + gtk_widget_hide (window->zoom_control); + } } static void diff --git a/src/nautilus-spatial-window.c b/src/nautilus-spatial-window.c index 4a25f24fb..bf6edf624 100644 --- a/src/nautilus-spatial-window.c +++ b/src/nautilus-spatial-window.c @@ -520,7 +520,6 @@ static void real_close_slot (NautilusWindow *window, NautilusWindowSlot *slot) { - g_assert (window->details->active_slot == slot); g_assert (g_list_length (window->details->slots) == 1); /* nothing to do */ diff --git a/src/nautilus-window.c b/src/nautilus-window.c index d24c0f7dd..a72c6206b 100644 --- a/src/nautilus-window.c +++ b/src/nautilus-window.c @@ -646,9 +646,21 @@ static void nautilus_window_destroy (GtkObject *object) { NautilusWindow *window; + NautilusWindowSlot *slot; + GList *l, *slots; window = NAUTILUS_WINDOW (object); + nautilus_window_set_active_slot (window, NULL); + + /* close all slots */ + slots = g_list_copy (window->details->slots); + for (l = slots; l != NULL; l = l->next) { + slot = NAUTILUS_WINDOW_SLOT (l->data); + nautilus_window_close_slot (window, slot); + } + g_list_free (slots); + nautilus_window_manage_views_destroy (window); GTK_OBJECT_CLASS (nautilus_window_parent_class)->destroy (object); @@ -728,20 +740,8 @@ nautilus_window_show_window (NautilusWindow *window) void nautilus_window_close (NautilusWindow *window) { - NautilusWindowSlot *slot; - GList *l, *slots; - g_return_if_fail (NAUTILUS_IS_WINDOW (window)); - nautilus_window_set_active_slot (window, NULL); - - slots = g_list_copy (window->details->slots); - for (l = slots; l != NULL; l = l->next) { - slot = NAUTILUS_WINDOW_SLOT (l->data); - nautilus_window_close_slot (window, slot); - } - g_list_free (slots); - EEL_CALL_METHOD (NAUTILUS_WINDOW_CLASS, window, close, (window)); -- cgit v1.2.1