[nautilus/gnome-3-2] window: make sure to disconnect GSettings signals when finalizing
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus/gnome-3-2] window: make sure to disconnect GSettings signals when finalizing
- Date: Mon, 17 Oct 2011 21:11:15 +0000 (UTC)
commit 7428762ea6601abba086fcc5e57f443b2e2b40b5
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Wed Sep 28 15:03:57 2011 -0400
window: make sure to disconnect GSettings signals when finalizing
The GSettings object survive the window, so handlers connected to its
signals should be disconnected when the window is finalized.
https://bugzilla.gnome.org/show_bug.cgi?id=655070
src/nautilus-window-menus.c | 26 ++++++++++++++------------
src/nautilus-window-private.h | 2 +-
src/nautilus-window.c | 2 +-
3 files changed, 16 insertions(+), 14 deletions(-)
---
diff --git a/src/nautilus-window-menus.c b/src/nautilus-window-menus.c
index 6ad70f3..792e46a 100644
--- a/src/nautilus-window-menus.c
+++ b/src/nautilus-window-menus.c
@@ -1303,6 +1303,20 @@ nautilus_window_initialize_menus (NautilusWindow *window)
nautilus_window_initialize_go_menu (window);
}
+void
+nautilus_window_finalize_menus (NautilusWindow *window)
+{
+ NautilusTrashMonitor *monitor;
+
+ monitor = nautilus_trash_monitor_get ();
+
+ g_signal_handlers_disconnect_by_func (monitor,
+ trash_state_changed_cb, window);
+
+ g_signal_handlers_disconnect_by_func (nautilus_preferences,
+ show_hidden_files_preference_callback, window);
+}
+
static GList *
get_extension_menus (NautilusWindow *window)
{
@@ -1433,15 +1447,3 @@ nautilus_window_load_extension_menus (NautilusWindow *window)
g_list_free (items);
}
}
-
-void
-nautilus_window_remove_trash_monitor_callback (NautilusWindow *window)
-{
- NautilusTrashMonitor *monitor;
-
- monitor = nautilus_trash_monitor_get ();
-
- g_signal_handlers_disconnect_by_func (monitor,
- trash_state_changed_cb, window);
-}
-
diff --git a/src/nautilus-window-private.h b/src/nautilus-window-private.h
index 2c44871..539aa04 100644
--- a/src/nautilus-window-private.h
+++ b/src/nautilus-window-private.h
@@ -127,7 +127,6 @@ typedef void (*NautilusBookmarkFailedCallback) (NautilusWindow *window,
void nautilus_window_load_view_as_menus (NautilusWindow *window);
void nautilus_window_load_extension_menus (NautilusWindow *window);
-void nautilus_window_initialize_menus (NautilusWindow *window);
void nautilus_window_remove_trash_monitor_callback (NautilusWindow *window);
NautilusWindowPane *nautilus_window_get_next_pane (NautilusWindow *window);
void nautilus_menus_append_bookmark_to_menu (NautilusWindow *window,
@@ -170,6 +169,7 @@ void nautilus_window_sync_zoom_widgets (NautilusWindow *window);
GtkActionGroup *nautilus_window_create_toolbar_action_group (NautilusWindow *window);
void nautilus_window_initialize_actions (NautilusWindow *window);
void nautilus_window_initialize_menus (NautilusWindow *window);
+void nautilus_window_finalize_menus (NautilusWindow *window);
void nautilus_window_remove_bookmarks_menu_callback (NautilusWindow *window);
void nautilus_window_remove_bookmarks_menu_items (NautilusWindow *window);
diff --git a/src/nautilus-window.c b/src/nautilus-window.c
index 1d86e26..b2aef34 100644
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -738,7 +738,7 @@ nautilus_window_finalize (GObject *object)
g_free (window->details->sidebar_id);
g_clear_object (&window->details->nav_state);
- nautilus_window_remove_trash_monitor_callback (window);
+ nautilus_window_finalize_menus (window);
free_stored_viewers (window);
if (window->details->bookmark_list != NULL) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]