[Xfce4-commits] <xfce4-session:nick/shutdown-cleanup> Switch to PowerManagement DBus name.

Nick Schermer noreply at xfce.org
Wed Mar 7 22:16:01 CET 2012


Updating branch refs/heads/nick/shutdown-cleanup
         to 8c95a7efd81a98cf896a90b9be28b961512fe190 (commit)
       from c4ce63748c726d3e9614d1dbd3f9e1963acc5fa2 (commit)

commit 8c95a7efd81a98cf896a90b9be28b961512fe190
Author: Nick Schermer <nick at xfce.org>
Date:   Wed Mar 7 22:13:47 2012 +0100

    Switch to PowerManagement DBus name.

 xfce4-session/xfsm-shutdown.c |   54 ++++++++++++++++++++++++++++++++++-------
 1 files changed, 45 insertions(+), 9 deletions(-)

diff --git a/xfce4-session/xfsm-shutdown.c b/xfce4-session/xfsm-shutdown.c
index 4821cf4..52a9841 100644
--- a/xfce4-session/xfsm-shutdown.c
+++ b/xfce4-session/xfsm-shutdown.c
@@ -541,9 +541,9 @@ xfsm_shutdown_query_xfpm (XfsmShutdown  *shutdown,
     return FALSE;
 
   proxy = dbus_g_proxy_new_for_name_owner (conn,
-                                           "org.xfce.PowerManager",
-                                           "/org/xfce/PowerManager",
-                                           "org.xfce.PowerManager",
+                                           "org.xfce.PowerManagement",
+                                           "/org/xfce/PowerManagement",
+                                           "org.xfce.PowerManagement",
                                            error);
   if (proxy != NULL)
     {
@@ -563,12 +563,11 @@ xfsm_shutdown_query_xfpm (XfsmShutdown  *shutdown,
 
 static gboolean
 xfsm_shutdown_kiosk_can_shutdown (XfsmShutdown  *shutdown,
-                           GError       **error)
+                                  GError       **error)
 {
   if (!shutdown->kiosk_can_shutdown)
     {
-      if (error != NULL)
-        g_set_error_literal (error, 1, 0, _("Shutdown is blocked by the kiosk settings"));
+      g_set_error_literal (error, 1, 0, _("Shutdown is blocked by the kiosk settings"));
       return FALSE;
     }
 
@@ -577,6 +576,43 @@ xfsm_shutdown_kiosk_can_shutdown (XfsmShutdown  *shutdown,
 
 
 
+static gboolean
+xfsm_shutdown_run_xfpm (XfsmShutdown  *shutdown,
+                        const gchar   *method,
+                        GError       **error)
+{
+  DBusGConnection *conn;
+  DBusGProxy      *proxy;
+  gboolean         result = FALSE;
+
+  if (!xfsm_shutdown_kiosk_can_shutdown (shutdown, error))
+    return FALSE;
+
+  conn = dbus_g_bus_get (DBUS_BUS_SESSION, error);
+  if (conn == NULL)
+    return FALSE;
+
+  proxy = dbus_g_proxy_new_for_name_owner (conn,
+                                           "org.xfce.PowerManagement",
+                                           "/org/xfce/PowerManagement",
+                                           "org.xfce.PowerManagement",
+                                           error);
+
+  if (proxy != NULL)
+    {
+      result = dbus_g_proxy_call (proxy, method, error,
+                                  G_TYPE_INVALID,
+                                  G_TYPE_INVALID);
+      g_object_unref (proxy);
+    }
+
+  dbus_g_connection_unref (conn);
+
+  return result;
+}
+
+
+
 XfsmShutdown *
 xfsm_shutdown_get (void)
 {
@@ -700,7 +736,7 @@ xfsm_shutdown_try_suspend (XfsmShutdown  *shutdown,
 {
   g_return_val_if_fail (XFSM_IS_SHUTDOWN (shutdown), FALSE);
 
-  return TRUE;
+  return xfsm_shutdown_run_xfpm (shutdown, "Suspend", error);
 }
 
 
@@ -711,7 +747,7 @@ xfsm_shutdown_try_hibernate (XfsmShutdown  *shutdown,
 {
   g_return_val_if_fail (XFSM_IS_SHUTDOWN (shutdown), FALSE);
 
-  return TRUE;
+  return xfsm_shutdown_run_xfpm (shutdown, "Hibernate", error);
 }
 
 
@@ -719,7 +755,7 @@ xfsm_shutdown_try_hibernate (XfsmShutdown  *shutdown,
 gboolean
 xfsm_shutdown_can_restart (XfsmShutdown  *shutdown,
                            gboolean      *can_restart,
-                            GError       **error)
+                           GError       **error)
 {
   g_return_val_if_fail (XFSM_IS_SHUTDOWN (shutdown), FALSE);
 


More information about the Xfce4-commits mailing list