[PATCH spice-gtk 5/5] Add GDBus version of dbus-glib code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx>

---
 gtk/desktop-integration.c | 34 +++++++++++++++++++++++++++++++++-
 1 file changed, 33 insertions(+), 1 deletion(-)

diff --git a/gtk/desktop-integration.c b/gtk/desktop-integration.c
index 064994d..d764e56 100644
--- a/gtk/desktop-integration.c
+++ b/gtk/desktop-integration.c
@@ -90,6 +90,16 @@ static gboolean gnome_integration_init(SpiceDesktopIntegration *self)
                                             "org.gnome.SessionManager",
                                             &error);
 end:
+#elif defined(USE_GDBUS)
+    priv->gnome_session_proxy =
+        g_dbus_proxy_new_for_bus_sync(G_BUS_TYPE_SESSION,
+                                      G_DBUS_PROXY_FLAGS_NONE,
+                                      NULL,
+                                      "org.gnome.SessionManager",
+                                      "/org/gnome/SessionManager",
+                                      "org.gnome.SessionManager",
+                                      NULL,
+                                      &error);
 #else
     success = FALSE;
 #endif
@@ -108,6 +118,8 @@ static void gnome_integration_inhibit_automount(SpiceDesktopIntegration *self)
 {
     SpiceDesktopIntegrationPrivate *priv = self->priv;
     GError *error = NULL;
+    G_GNUC_UNUSED const gchar *reason =
+        _("Automounting has been inhibited for USB auto-redirecting");
 
     if (!priv->gnome_session_proxy)
         return;
@@ -120,11 +132,24 @@ static void gnome_integration_inhibit_automount(SpiceDesktopIntegration *self)
                 G_TYPE_STRING, g_get_prgname(),
                 G_TYPE_UINT, 0,
                 G_TYPE_STRING,
-                 _("Automounting has been inhibited for USB auto-redirecting"),
+                reason,
                 G_TYPE_UINT, GNOME_SESSION_INHIBIT_AUTOMOUNT,
                 G_TYPE_INVALID,
                 G_TYPE_UINT, &priv->gnome_automount_inhibit_cookie,
                 G_TYPE_INVALID);
+#elif defined(USE_GDBUS)
+    GVariant *v = g_dbus_proxy_call_sync(priv->gnome_session_proxy,
+                "Inhibit",
+                g_variant_new("(susu)",
+                              g_get_prgname(),
+                              0,
+                              reason,
+                              GNOME_SESSION_INHIBIT_AUTOMOUNT),
+                G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
+    if (v)
+        g_variant_get(v, "(u)", &priv->gnome_automount_inhibit_cookie);
+
+    g_clear_pointer(&v, g_variant_unref);
 #endif
     if (error)
         handle_dbus_call_error("org.gnome.SessionManager.Inhibit", &error);
@@ -148,6 +173,13 @@ static void gnome_integration_uninhibit_automount(SpiceDesktopIntegration *self)
                 G_TYPE_UINT, priv->gnome_automount_inhibit_cookie,
                 G_TYPE_INVALID,
                 G_TYPE_INVALID);
+#elif defined(USE_GDBUS)
+    GVariant *v = g_dbus_proxy_call_sync(priv->gnome_session_proxy,
+                "Uninhibit",
+                g_variant_new("(u)",
+                              priv->gnome_automount_inhibit_cookie),
+                G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error);
+    g_clear_pointer(&v, g_variant_unref);
 #endif
     if (error)
         handle_dbus_call_error("org.gnome.SessionManager.Uninhibit", &error);
-- 
1.8.4.2

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/spice-devel





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]