~ubuntu-branches/ubuntu/oneiric/nautilus/oneiric

« back to all changes in this revision

Viewing changes to debian/patches/git_gsettings_signals.patch

  • Committer: Package Import Robot
  • Author(s): Sebastien Bacher, Jeremy Bicha, Sebastien Bacher
  • Date: 2011-09-30 12:23:46 UTC
  • Revision ID: package-import@ubuntu.com-20110930122346-1ta7yqhz30g6fv9d
Tags: 1:3.2.0-0ubuntu5
[ Jeremy Bicha ]
* debian/patches/05_desktop_menu_export.patch:
  - Disable a few more items that don't work right in desktop mode

[ Sebastien Bacher ]
* git_handle_missing_icon.patch:
  - don't segfault on missing icon (lp: #860659)
* git_gsettings_signals.patch:
  - don't segfault on preferences changes (lp: #807234)
* git_no_typeahead_timeout_segfault.patch:
  - better handle the flush timeout, should avoid segfaults (lp: #804133) 
* git_dont_preview_empty_selection.patch:
  - check that the selection is non empty to avoid a segfault (lp: #812015)  
* git_correct_signal_handling.patch,
  git_no_signal_order_assert.patch,
  git_slot_closing.patch:
  - clean some signal handling issues leading to segfaults (lp: #795708)
* git_close_pane_cleaning.patch:
  - needed changes for the previous patch

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
From d3c158d6c9a6ee40fae660ab56b7d8a40074108c Mon Sep 17 00:00:00 2001
 
2
From: Cosimo Cecchi <cosimoc@gnome.org>
 
3
Date: Wed, 28 Sep 2011 19:03:57 +0000
 
4
Subject: window: make sure to disconnect GSettings signals when finalizing
 
5
 
 
6
The GSettings object survive the window, so handlers connected to its
 
7
signals should be disconnected when the window is finalized.
 
8
 
 
9
https://bugzilla.gnome.org/show_bug.cgi?id=655070
 
10
---
 
11
diff --git a/src/nautilus-window-menus.c b/src/nautilus-window-menus.c
 
12
index 6ad70f3..792e46a 100644
 
13
--- a/src/nautilus-window-menus.c
 
14
+++ b/src/nautilus-window-menus.c
 
15
@@ -1303,6 +1303,20 @@ nautilus_window_initialize_menus (NautilusWindow *window)
 
16
        nautilus_window_initialize_go_menu (window);
 
17
 }
 
18
 
 
19
+void
 
20
+nautilus_window_finalize_menus (NautilusWindow *window)
 
21
+{
 
22
+       NautilusTrashMonitor *monitor;
 
23
+
 
24
+       monitor = nautilus_trash_monitor_get ();
 
25
+
 
26
+       g_signal_handlers_disconnect_by_func (monitor,
 
27
+                                             trash_state_changed_cb, window);
 
28
+
 
29
+       g_signal_handlers_disconnect_by_func (nautilus_preferences,
 
30
+                                             show_hidden_files_preference_callback, window);
 
31
+}
 
32
+
 
33
 static GList *
 
34
 get_extension_menus (NautilusWindow *window)
 
35
 {
 
36
@@ -1433,15 +1447,3 @@ nautilus_window_load_extension_menus (NautilusWindow *window)
 
37
                g_list_free (items);
 
38
        }
 
39
 }
 
40
-
 
41
-void
 
42
-nautilus_window_remove_trash_monitor_callback (NautilusWindow *window)
 
43
-{
 
44
-       NautilusTrashMonitor *monitor;
 
45
-
 
46
-       monitor = nautilus_trash_monitor_get ();
 
47
-
 
48
-       g_signal_handlers_disconnect_by_func (monitor,
 
49
-                                             trash_state_changed_cb, window);
 
50
-}
 
51
-
 
52
diff --git a/src/nautilus-window-private.h b/src/nautilus-window-private.h
 
53
index 2c44871..539aa04 100644
 
54
--- a/src/nautilus-window-private.h
 
55
+++ b/src/nautilus-window-private.h
 
56
@@ -127,7 +127,6 @@ typedef void (*NautilusBookmarkFailedCallback) (NautilusWindow *window,
 
57
 
 
58
 void               nautilus_window_load_view_as_menus                    (NautilusWindow    *window);
 
59
 void               nautilus_window_load_extension_menus                  (NautilusWindow    *window);
 
60
-void               nautilus_window_initialize_menus                      (NautilusWindow    *window);
 
61
 void               nautilus_window_remove_trash_monitor_callback         (NautilusWindow    *window);
 
62
 NautilusWindowPane *nautilus_window_get_next_pane                        (NautilusWindow *window);
 
63
 void               nautilus_menus_append_bookmark_to_menu                (NautilusWindow    *window, 
 
64
@@ -170,6 +169,7 @@ void nautilus_window_sync_zoom_widgets     (NautilusWindow *window);
 
65
 GtkActionGroup *nautilus_window_create_toolbar_action_group (NautilusWindow *window);
 
66
 void               nautilus_window_initialize_actions                    (NautilusWindow    *window);
 
67
 void               nautilus_window_initialize_menus                      (NautilusWindow    *window);
 
68
+void               nautilus_window_finalize_menus                        (NautilusWindow    *window);
 
69
 void               nautilus_window_remove_bookmarks_menu_callback        (NautilusWindow    *window);
 
70
 
 
71
 void               nautilus_window_remove_bookmarks_menu_items           (NautilusWindow    *window);
 
72
diff --git a/src/nautilus-window.c b/src/nautilus-window.c
 
73
index 1d86e26..b2aef34 100644
 
74
--- a/src/nautilus-window.c
 
75
+++ b/src/nautilus-window.c
 
76
@@ -738,7 +738,7 @@ nautilus_window_finalize (GObject *object)
 
77
        g_free (window->details->sidebar_id);
 
78
        g_clear_object (&window->details->nav_state);
 
79
 
 
80
-       nautilus_window_remove_trash_monitor_callback (window);
 
81
+       nautilus_window_finalize_menus (window);
 
82
        free_stored_viewers (window);
 
83
 
 
84
        if (window->details->bookmark_list != NULL) {