summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCosimo Cecchi <cosimoc@gnome.org>2011-09-29 01:11:39 -0400
committerCosimo Cecchi <cosimoc@gnome.org>2011-10-17 10:01:28 -0400
commitdb4302ed2f91eb719ba7478472607fbf5d614636 (patch)
tree5c73f14d7dd40289415e164038704c9659ee258e
parent936f4d07c031207971eae2eff7395d355b4fb344 (diff)
downloadnautilus-db4302ed2f91eb719ba7478472607fbf5d614636.tar.gz
window: cleanup nautilus_window_close_pane()
-rw-r--r--src/nautilus-window-private.h3
-rw-r--r--src/nautilus-window.c25
2 files changed, 17 insertions, 11 deletions
diff --git a/src/nautilus-window-private.h b/src/nautilus-window-private.h
index 539aa0486..b44a312ca 100644
--- a/src/nautilus-window-private.h
+++ b/src/nautilus-window-private.h
@@ -176,7 +176,8 @@ void nautilus_window_remove_bookmarks_menu_items (Nautil
void nautilus_window_update_show_hide_menu_items (NautilusWindow *window);
/* window toolbar */
-void nautilus_window_close_pane (NautilusWindowPane *pane);
+void nautilus_window_close_pane (NautilusWindow *window,
+ NautilusWindowPane *pane);
void nautilus_window_update_split_view_actions_sensitivity (NautilusWindow *window);
#endif /* NAUTILUS_WINDOW_PRIVATE_H */
diff --git a/src/nautilus-window.c b/src/nautilus-window.c
index b2aef3459..2518e8d11 100644
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -701,6 +701,16 @@ free_stored_viewers (NautilusWindow *window)
}
static void
+destroy_panes_foreach (gpointer data,
+ gpointer user_data)
+{
+ NautilusWindowPane *pane = data;
+ NautilusWindow *window = user_data;
+
+ nautilus_window_close_pane (window, pane);
+}
+
+static void
nautilus_window_destroy (GtkWidget *object)
{
NautilusWindow *window;
@@ -713,7 +723,7 @@ nautilus_window_destroy (GtkWidget *object)
/* close all panes safely */
panes_copy = g_list_copy (window->details->panes);
- g_list_foreach (panes_copy, (GFunc) nautilus_window_close_pane, NULL);
+ g_list_foreach (panes_copy, (GFunc) destroy_panes_foreach, window);
g_list_free (panes_copy);
/* the panes list should now be empty */
@@ -883,13 +893,10 @@ nautilus_window_open_slot (NautilusWindowPane *pane,
}
void
-nautilus_window_close_pane (NautilusWindowPane *pane)
+nautilus_window_close_pane (NautilusWindow *window,
+ NautilusWindowPane *pane)
{
- NautilusWindow *window;
-
g_assert (NAUTILUS_IS_WINDOW_PANE (pane));
- g_assert (NAUTILUS_IS_WINDOW (pane->window));
- g_assert (g_list_find (pane->window->details->panes, pane) != NULL);
while (pane->slots != NULL) {
NautilusWindowSlot *slot = pane->slots->data;
@@ -897,10 +904,8 @@ nautilus_window_close_pane (NautilusWindowPane *pane)
nautilus_window_close_slot (slot);
}
- window = pane->window;
-
/* If the pane was active, set it to NULL. The caller is responsible
- * for setting a new active pane with nautilus_window_pane_switch_to()
+ * for setting a new active pane with nautilus_window_set_active_pane()
* if it wants to continue using the window. */
if (window->details->active_pane == pane) {
window->details->active_pane = NULL;
@@ -2186,7 +2191,7 @@ nautilus_window_split_view_off (NautilusWindow *window)
next = l->next;
pane = l->data;
if (pane != active_pane) {
- nautilus_window_close_pane (pane);
+ nautilus_window_close_pane (window, pane);
}
}