summaryrefslogtreecommitdiff
path: root/extra/gvfs/do-not-emit-connected-added-signals-at-object-creation.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/gvfs/do-not-emit-connected-added-signals-at-object-creation.patch')
-rw-r--r--extra/gvfs/do-not-emit-connected-added-signals-at-object-creation.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/extra/gvfs/do-not-emit-connected-added-signals-at-object-creation.patch b/extra/gvfs/do-not-emit-connected-added-signals-at-object-creation.patch
new file mode 100644
index 000000000..9369c87bd
--- /dev/null
+++ b/extra/gvfs/do-not-emit-connected-added-signals-at-object-creation.patch
@@ -0,0 +1,39 @@
+From ca7743a63721c3dd1c166006539e356412466dcc Mon Sep 17 00:00:00 2001
+From: Cosimo Cecchi <cosimoc@gnome.org>
+Date: Sun, 23 Sep 2012 18:51:32 +0000
+Subject: proxy: don't emit connected/added signals at object creation
+
+It's unnecessary to emit those signals when the object is created, and
+it can cause weird side-effects if applications e.g. play a sound on
+signal emission.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=684677
+---
+diff --git a/monitor/proxy/gproxyvolumemonitor.c b/monitor/proxy/gproxyvolumemonitor.c
+index 1af6c34..37fc788 100644
+--- a/monitor/proxy/gproxyvolumemonitor.c
++++ b/monitor/proxy/gproxyvolumemonitor.c
+@@ -955,6 +955,7 @@ g_proxy_volume_monitor_constructor (GType type,
+ GObjectClass *parent_class;
+ GError *error;
+ const char *dbus_name;
++ gchar *name_owner;
+
+ G_LOCK (proxy_vm);
+
+@@ -1018,7 +1019,12 @@ g_proxy_volume_monitor_constructor (GType type,
+ /* listen to when the owner of the service appears/disappears */
+ g_signal_connect (monitor->proxy, "notify::g-name-owner", G_CALLBACK (name_owner_changed), monitor);
+ /* initially seed drives/volumes/mounts if we have an owner */
+- name_owner_changed (G_OBJECT (monitor->proxy), NULL, monitor);
++ name_owner = g_dbus_proxy_get_name_owner (G_DBUS_PROXY (monitor->proxy));
++ if (name_owner != NULL)
++ {
++ seed_monitor (monitor);
++ g_free (name_owner);
++ }
+
+ g_hash_table_insert (the_volume_monitors, (gpointer) type, object);
+
+--
+cgit v0.9.0.2