summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Neumair <cneumair@gnome.org>2008-03-22 18:29:13 +0000
committerChristian Neumair <cneumair@src.gnome.org>2008-03-22 18:29:13 +0000
commitab0ba61800cb60e38272362f807db987b814a8d7 (patch)
tree4f0c52819e9cf03c89455e6fb82001e96cd04738
parenta623c0892928af7c15df20e1db8efde5f0561e06 (diff)
downloadnautilus-ab0ba61800cb60e38272362f807db987b814a8d7.tar.gz
Do not try to hide zoom control if we are already destroyed.
2008-03-22 Christian Neumair <cneumair@gnome.org> * 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
-rw-r--r--ChangeLog14
-rw-r--r--src/nautilus-navigation-window.c7
-rw-r--r--src/nautilus-spatial-window.c1
-rw-r--r--src/nautilus-window.c24
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 <chris@ubuntu-t43>
+2008-03-22 Christian Neumair <cneumair@gnome.org>
+
+ * 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 <cneumair@gnome.org>
* 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));