[Goodies-commits] r5644 - xfce4-power-manager/trunk/src

Ali Abdallah aliov at xfce.org
Thu Oct 16 14:17:33 CEST 2008


Author: aliov
Date: 2008-10-16 12:17:32 +0000 (Thu, 16 Oct 2008)
New Revision: 5644

Modified:
   xfce4-power-manager/trunk/src/xfpm-button.c
   xfce4-power-manager/trunk/src/xfpm-common.c
   xfce4-power-manager/trunk/src/xfpm-dbus-messages.c
   xfce4-power-manager/trunk/src/xfpm-dbus-messages.h
   xfce4-power-manager/trunk/src/xfpm-driver.c
   xfce4-power-manager/trunk/src/xfpm-lcd-brightness.c
Log:
Inform the Network manager when hibernate/suspend + bug fixes

Modified: xfce4-power-manager/trunk/src/xfpm-button.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-button.c	2008-10-16 07:06:54 UTC (rev 5643)
+++ xfce4-power-manager/trunk/src/xfpm-button.c	2008-10-16 12:17:32 UTC (rev 5644)
@@ -154,7 +154,7 @@
                                                       XFPM_DO_NOTHING,
                                                       G_PARAM_READWRITE));    
     g_object_class_install_property(gobject_class,
-                                    PROP_LID_ACTION,
+                                    PROP_POWER_ACTION,
                                     g_param_spec_enum("power-switch-action",
                                                       "power switch action",
                                                       "power switch action",
@@ -322,11 +322,15 @@
     }
     else if ( action == XFPM_DO_SHUTDOWN )
     {
+        XFPM_DEBUG("Processing\n");
         XfpmButtonPrivate *priv;
         priv = XFPM_BUTTON_GET_PRIVATE(bt);
+        g_signal_handler_block(priv->hal,priv->handler_id);
+    
+        g_signal_emit(G_OBJECT(bt),signals[XFPM_ACTION_REQUEST],0,XFPM_DO_HIBERNATE,FALSE);
         
-        g_signal_handler_block(priv->hal,priv->handler_id);
-        xfpm_hal_shutdown(priv->hal);
+        g_timeout_add(10,(GSourceFunc)_unblock_handler,priv);
+        
     }
         
 }
@@ -372,6 +376,7 @@
 {
     if ( bt->power_action == XFPM_DO_NOTHING )
     {
+        XFPM_DEBUG("Power action is do nothing\n");
         return;
     }
     

Modified: xfce4-power-manager/trunk/src/xfpm-common.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-common.c	2008-10-16 07:06:54 UTC (rev 5643)
+++ xfce4-power-manager/trunk/src/xfpm-common.c	2008-10-16 12:17:32 UTC (rev 5644)
@@ -47,7 +47,7 @@
 void       
 xfpm_lock_screen(void)
 {
-    gboolean ret = g_spawn_command_line_async("xflock4");
+    gboolean ret = g_spawn_command_line_async("xflock4",NULL);
     
     if ( !ret )
     {

Modified: xfce4-power-manager/trunk/src/xfpm-dbus-messages.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-dbus-messages.c	2008-10-16 07:06:54 UTC (rev 5643)
+++ xfce4-power-manager/trunk/src/xfpm-dbus-messages.c	2008-10-16 12:17:32 UTC (rev 5644)
@@ -19,17 +19,46 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #include "xfpm-dbus-messages.h"
+#include "xfpm-debug.h"
 
+
+static gboolean
+xfpm_dbus_name_has_owner(DBusConnection *connection,const gchar *service)
+{
+    DBusError error;
+    dbus_error_init(&error);
+    
+    gboolean ret = dbus_bus_name_has_owner(connection,service,&error);
+    
+    if ( dbus_error_is_set(&error) )
+    {
+        XFPM_DEBUG("Failed to get name owner: %s\n",error.message);
+        dbus_error_free(&error);
+        return FALSE;
+    }
+    
+    if ( ret == FALSE )
+    {
+        XFPM_DEBUG("Network manager is not installed \n");
+    }
+    
+    return ret;
+}
+
 static
-DBusConnection *xfpm_dbus_get_connection() 
+DBusConnection *xfpm_dbus_get_connection(DBusBusType type) 
 {
     DBusError error;
     DBusConnection *connection;
 
     dbus_error_init(&error);
     
-    connection = dbus_bus_get(DBUS_BUS_SESSION,&error);
+    connection = dbus_bus_get(type,&error);
     
     if ( !connection ) 
     {
@@ -83,7 +112,7 @@
     DBusConnection *connection;
     DBusMessage *message;
     
-    connection = xfpm_dbus_get_connection();
+    connection = xfpm_dbus_get_connection(DBUS_BUS_SESSION);
     if ( !connection )
     {
         return FALSE;
@@ -111,7 +140,6 @@
     {
         return TRUE;
     }         
-                     
 }  
 
 gboolean xfpm_dbus_send_message_with_reply (const char *signal,gint *get_reply) {
@@ -120,7 +148,7 @@
     DBusMessage *message;
     DBusPendingCall *pend;
 
-    connection = xfpm_dbus_get_connection();
+    connection = xfpm_dbus_get_connection(DBUS_BUS_SESSION);
     if ( !connection )
     {
         return FALSE;
@@ -177,3 +205,44 @@
     dbus_connection_unref(connection);
     return TRUE;
 }  
+
+void     xfpm_dbus_send_nm_message   (const gchar *signal)
+{
+    DBusConnection *connection;
+    DBusMessage *message;
+    
+    connection = xfpm_dbus_get_connection(DBUS_BUS_SYSTEM);
+    if ( !connection )
+    {
+        return;
+    }
+    
+    if ( !xfpm_dbus_name_has_owner(connection,NM_SERVICE) )
+    {
+        dbus_connection_unref(connection);
+        return;
+    }
+    
+    message = xfpm_dbus_new_message(NM_SERVICE,NM_PATH,NM_INTERFACE,signal);
+    
+    if (!message)
+    {
+        return;
+    }
+        
+    gboolean ret =
+    dbus_connection_send(connection,
+                         message,
+                         NULL);
+        
+    dbus_message_unref(message);
+    dbus_connection_unref(connection);
+    if ( ret == FALSE )
+    {
+        XFPM_DEBUG("Failed to send message \n");
+        return;
+    } else
+    {
+        return;
+    }         
+}

Modified: xfce4-power-manager/trunk/src/xfpm-dbus-messages.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-dbus-messages.h	2008-10-16 07:06:54 UTC (rev 5643)
+++ xfce4-power-manager/trunk/src/xfpm-dbus-messages.h	2008-10-16 12:17:32 UTC (rev 5644)
@@ -25,6 +25,10 @@
 #define XFPM_PM_ROOT  "/xfpm/power/manager"
 #define XFPM_PM_IFACE "xfpm.power.manager"
 
+#define NM_SERVICE	    "org.freedesktop.NetworkManager"
+#define NM_PATH	        "/org/freedesktop/NetworkManager"
+#define NM_INTERFACE	"org.freedesktop.NetworkManager"
+
 #include <glib.h>
 #include <dbus/dbus.h>
 
@@ -33,6 +37,6 @@
                                    
 gboolean xfpm_dbus_send_message            (const gchar *signal);
 gboolean xfpm_dbus_send_message_with_reply (const gchar *signal,gint *get_reply);
+void     xfpm_dbus_send_nm_message         (const gchar *signal);
 
-
 #endif /* __XFPM_DBUS_MESSAGES */

Modified: xfce4-power-manager/trunk/src/xfpm-driver.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-driver.c	2008-10-16 07:06:54 UTC (rev 5643)
+++ xfce4-power-manager/trunk/src/xfpm-driver.c	2008-10-16 12:17:32 UTC (rev 5644)
@@ -65,6 +65,7 @@
 #include "xfpm-notify.h"
 #include "xfpm-enum-types.h"
 #include "xfpm-settings.h"
+#include "xfpm-dbus-messages.h"
 
 #ifdef HAVE_LIBNOTIFY
 #include "xfpm-notify.h"
@@ -615,6 +616,7 @@
     }
     
     priv->accept_sleep_request = TRUE;
+    xfpm_dbus_send_nm_message("wakeup");
     
     return FALSE;
     
@@ -643,6 +645,7 @@
     }
         
     priv->accept_sleep_request = TRUE;
+    xfpm_dbus_send_nm_message("wakeup");
     return FALSE;
     
 }
@@ -670,6 +673,7 @@
 xfpm_driver_hibernate(XfpmDriver *drv,gboolean critical)
 {
     xfpm_lock_screen();
+    xfpm_dbus_send_nm_message("sleep");
     g_timeout_add_seconds(2,(GSourceFunc)xfpm_driver_do_hibernate,drv);
 }
 
@@ -677,6 +681,7 @@
 xfpm_driver_suspend(XfpmDriver *drv,gboolean critical)
 {
     xfpm_lock_screen();
+    xfpm_dbus_send_nm_message("sleep");
     g_timeout_add_seconds(2,(GSourceFunc)xfpm_driver_do_suspend,drv);
 }
 

Modified: xfce4-power-manager/trunk/src/xfpm-lcd-brightness.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-lcd-brightness.c	2008-10-16 07:06:54 UTC (rev 5643)
+++ xfce4-power-manager/trunk/src/xfpm-lcd-brightness.c	2008-10-16 12:17:32 UTC (rev 5644)
@@ -340,6 +340,7 @@
     
     if ( !lcd->brightness_control_enabled )
     {
+        XFPM_DEBUG("Lcd brightness is disabled\n");
         return;
     }
     




More information about the Goodies-commits mailing list