summaryrefslogtreecommitdiffstats
path: root/0001-Update-to-GDBus-API-change.patch
diff options
context:
space:
mode:
Diffstat (limited to '0001-Update-to-GDBus-API-change.patch')
-rw-r--r--0001-Update-to-GDBus-API-change.patch160
1 files changed, 160 insertions, 0 deletions
diff --git a/0001-Update-to-GDBus-API-change.patch b/0001-Update-to-GDBus-API-change.patch
new file mode 100644
index 0000000..2e1ed5b
--- /dev/null
+++ b/0001-Update-to-GDBus-API-change.patch
@@ -0,0 +1,160 @@
+From eb9b57ea502c268f2e4eddacc1c2cfb5283a407d Mon Sep 17 00:00:00 2001
+From: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Fri, 18 Jun 2010 12:17:26 +0200
+Subject: [PATCH 1/3] Update to GDBus API change
+
+Fixes bug #621766.
+---
+ configure.in | 2 +-
+ .../panel-applet-container.c | 64 ++++++++++----------
+ 2 files changed, 32 insertions(+), 34 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index ba108b0..f3b3fbd 100644
+--- a/configure.in
++++ b/configure.in
+@@ -57,7 +57,7 @@ AC_CHECK_FUNCS(_NSGetEnviron)
+ LIBGNOME_DESKTOP_REQUIRED=2.24.0
+ GDK_PIXBUF_REQUIRED=2.7.1
+ PANGO_REQUIRED=1.15.4
+-GLIB_REQUIRED=2.25.7
++GLIB_REQUIRED=2.25.9
+ GTK_REQUIRED=2.19.7
+ LIBWNCK_REQUIRED=2.19.5
+ GCONF_REQUIRED=2.6.1
+diff --git a/gnome-panel/libpanel-applet-private/panel-applet-container.c b/gnome-panel/libpanel-applet-private/panel-applet-container.c
+index ad5eeaf..96d4aa4 100644
+--- a/gnome-panel/libpanel-applet-private/panel-applet-container.c
++++ b/gnome-panel/libpanel-applet-private/panel-applet-container.c
+@@ -27,7 +27,6 @@
+ struct _PanelAppletContainerPrivate {
+ GDBusProxy *applet_proxy;
+
+- guint proxy_watcher_id;
+ guint name_watcher_id;
+ gchar *bus_name;
+
+@@ -142,11 +141,6 @@ panel_applet_container_dispose (GObject *object)
+ container->priv->name_watcher_id = 0;
+ }
+
+- if (container->priv->proxy_watcher_id > 0) {
+- g_bus_unwatch_proxy (container->priv->proxy_watcher_id);
+- container->priv->proxy_watcher_id = 0;
+- }
+-
+ if (container->priv->applet_proxy) {
+ g_object_unref (container->priv->applet_proxy);
+ container->priv->applet_proxy = NULL;
+@@ -255,10 +249,6 @@ panel_applet_container_plug_removed (PanelAppletContainer *container)
+ g_bus_unwatch_name (container->priv->name_watcher_id);
+ container->priv->name_watcher_id = 0;
+ }
+- if (container->priv->proxy_watcher_id > 0) {
+- g_bus_unwatch_proxy (container->priv->proxy_watcher_id);
+- container->priv->proxy_watcher_id = 0;
+- }
+
+ g_object_unref (container->priv->applet_proxy);
+ container->priv->applet_proxy = NULL;
+@@ -322,23 +312,33 @@ on_property_changed (GDBusConnection *connection,
+ }
+
+ static void
+-on_proxy_appeared (GDBusConnection *connection,
+- const gchar *name,
+- const gchar *name_owner,
+- GDBusProxy *proxy,
+- gpointer user_data)
++on_proxy_appeared (GObject *source_object,
++ GAsyncResult *res,
++ gpointer user_data)
+ {
+ GSimpleAsyncResult *result = G_SIMPLE_ASYNC_RESULT (user_data);
+ PanelAppletContainer *container;
++ GDBusProxy *proxy;
++ GError *error = NULL;
++
++ proxy = g_dbus_proxy_new_finish (res, &error);
++ if (!proxy) {
++ g_simple_async_result_set_from_error (result, error);
++ g_error_free (error);
++ g_simple_async_result_complete (result);
++ g_object_unref (result);
++
++ return;
++ }
+
+ container = PANEL_APPLET_CONTAINER (g_async_result_get_source_object (G_ASYNC_RESULT (result)));
+
+- container->priv->applet_proxy = g_object_ref (proxy);
++ container->priv->applet_proxy = proxy;
+ g_signal_connect (container->priv->applet_proxy, "g-signal",
+ G_CALLBACK (panel_applet_container_child_signal),
+ container);
+- g_dbus_connection_signal_subscribe (connection,
+- name_owner,
++ g_dbus_connection_signal_subscribe (g_dbus_proxy_get_connection (proxy),
++ g_dbus_proxy_get_name (proxy),
+ "org.freedesktop.DBus.Properties",
+ "PropertiesChanged",
+ g_dbus_proxy_get_object_path (proxy),
+@@ -384,18 +384,16 @@ get_applet_cb (GObject *source_object,
+ container = PANEL_APPLET_CONTAINER (g_async_result_get_source_object (G_ASYNC_RESULT (result)));
+ g_variant_get (retvals, "(&ou)", &applet_path, &container->priv->xid);
+
+- container->priv->proxy_watcher_id =
+- g_bus_watch_proxy_on_connection (connection,
+- container->priv->bus_name,
+- G_BUS_NAME_WATCHER_FLAGS_NONE,
+- applet_path,
+- PANEL_APPLET_INTERFACE,
+- G_TYPE_DBUS_PROXY,
+- G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES,
+- (GBusProxyAppearedCallback) on_proxy_appeared,
+- NULL,
+- result,
+- NULL);
++ g_dbus_proxy_new (connection,
++ G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES,
++ NULL,
++ container->priv->bus_name,
++ applet_path,
++ PANEL_APPLET_INTERFACE,
++ NULL,
++ (GAsyncReadyCallback) on_proxy_appeared,
++ result);
++
+ g_variant_unref (retvals);
+
+ /* g_async_result_get_source_object returns new ref */
+@@ -601,7 +599,7 @@ panel_applet_container_child_set (PanelAppletContainer *container,
+ g_hash_table_insert (container->priv->pending_ops, result, cancellable);
+
+ g_dbus_connection_call (g_dbus_proxy_get_connection (proxy),
+- g_dbus_proxy_get_unique_bus_name (proxy),
++ g_dbus_proxy_get_name (proxy),
+ g_dbus_proxy_get_object_path (proxy),
+ "org.freedesktop.DBus.Properties",
+ "Set",
+@@ -701,7 +699,7 @@ panel_applet_container_child_get (PanelAppletContainer *container,
+ g_hash_table_insert (container->priv->pending_ops, result, cancellable);
+
+ g_dbus_connection_call (g_dbus_proxy_get_connection (proxy),
+- g_dbus_proxy_get_unique_bus_name (proxy),
++ g_dbus_proxy_get_name (proxy),
+ g_dbus_proxy_get_object_path (proxy),
+ "org.freedesktop.DBus.Properties",
+ "Get",
+@@ -772,7 +770,7 @@ panel_applet_container_child_popup_menu (PanelAppletContainer *container,
+ panel_applet_container_child_popup_menu);
+
+ g_dbus_connection_call (g_dbus_proxy_get_connection (proxy),
+- g_dbus_proxy_get_unique_bus_name (proxy),
++ g_dbus_proxy_get_name (proxy),
+ g_dbus_proxy_get_object_path (proxy),
+ PANEL_APPLET_INTERFACE,
+ "PopupMenu",
+--
+1.7.1
+