[Goodies-commits] r7107 - in xfce4-power-manager/trunk: . src

Ali Abdallah aliov at xfce.org
Sat Apr 4 11:30:12 CEST 2009


Author: aliov
Date: 2009-04-04 09:30:12 +0000 (Sat, 04 Apr 2009)
New Revision: 7107

Modified:
   xfce4-power-manager/trunk/ChangeLog
   xfce4-power-manager/trunk/src/xfpm-engine.c
   xfce4-power-manager/trunk/src/xfpm-shutdown.c
   xfce4-power-manager/trunk/src/xfpm-shutdown.h
   xfce4-power-manager/trunk/src/xfpm-tray-icon.c
Log:
Fix issue with multiple suspend callback

Modified: xfce4-power-manager/trunk/ChangeLog
===================================================================
--- xfce4-power-manager/trunk/ChangeLog	2009-04-03 19:22:19 UTC (rev 7106)
+++ xfce4-power-manager/trunk/ChangeLog	2009-04-04 09:30:12 UTC (rev 7107)
@@ -1,4 +1,7 @@
 
+2009-04-04 11:30 Ali aliov at xfce.org 
+	 * : Fix issue with multiple suspend callback
+
 2009-04-03 13:37 Ali aliov at xfce.org 
 	 * : Fix issue with battery critical level in the settings dialog
 

Modified: xfce4-power-manager/trunk/src/xfpm-engine.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-engine.c	2009-04-03 19:22:19 UTC (rev 7106)
+++ xfce4-power-manager/trunk/src/xfpm-engine.c	2009-04-04 09:30:12 UTC (rev 7107)
@@ -88,6 +88,8 @@
 
     gboolean has_lcd_brightness;
     gboolean has_lid;
+    
+    gboolean block;
 };
 
 enum
@@ -172,13 +174,17 @@
 	}
 	else if (shutdown == XFPM_DO_HIBERNATE)
 	{
-	    g_timeout_add_seconds (2, (GSourceFunc) xfpm_engine_do_hibernate,
-				   engine);
+	    xfpm_shutdown_add_callback (engine->priv->shutdown, 
+					(GSourceFunc) xfpm_engine_do_hibernate,
+					2,
+					engine);
 	}
 	else if (shutdown == XFPM_DO_SUSPEND)
 	{
-	    g_timeout_add_seconds (2, (GSourceFunc) xfpm_engine_do_suspend,
-				   engine);
+	    xfpm_shutdown_add_callback (engine->priv->shutdown, 
+					(GSourceFunc) xfpm_engine_do_suspend,
+					2,
+					engine);
 	}
 
 	if (lock_screen)

Modified: xfce4-power-manager/trunk/src/xfpm-shutdown.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-shutdown.c	2009-04-03 19:22:19 UTC (rev 7106)
+++ xfce4-power-manager/trunk/src/xfpm-shutdown.c	2009-04-04 09:30:12 UTC (rev 7107)
@@ -350,6 +350,21 @@
     return XFPM_SHUTDOWN (xfpm_shutdown_object);
 }
 
+gboolean                  xfpm_shutdown_add_callback    (XfpmShutdown *shutdown,
+							 GSourceFunc func,
+							 guint timeout,
+							 gpointer data)
+{
+    g_return_val_if_fail (XFPM_IS_SHUTDOWN (shutdown), FALSE);
+    
+    if (shutdown->priv->block_shutdown)
+	return FALSE;
+	
+    g_timeout_add_seconds (timeout, func, data);
+    shutdown->priv->block_shutdown = TRUE;
+    return TRUE;
+}
+
 void xfpm_shutdown	(XfpmShutdown *shutdown, GError **error)
 {
     g_return_if_fail (XFPM_IS_SHUTDOWN(shutdown));
@@ -360,9 +375,8 @@
 	return;
     }
     
-    if ( shutdown->priv->block_shutdown )
-	return;
     xfpm_shutdown_internal (dbus_g_connection_get_connection(shutdown->priv->bus), "Shutdown", NULL);
+    shutdown->priv->block_shutdown = FALSE;
 }
 
 void xfpm_hibernate (XfpmShutdown *shutdown, GError **error)
@@ -378,13 +392,9 @@
 	return;
     }
 
-    if ( shutdown->priv->block_shutdown )
-	return;
-
-    shutdown->priv->block_shutdown = TRUE;
     xfpm_shutdown_internal (dbus_g_connection_get_connection(shutdown->priv->bus), "Hibernate", &error_internal);
     shutdown->priv->block_shutdown = FALSE;
-     
+    
     if ( error_internal )
     {
 	g_warning ("%s", error_internal->message);
@@ -410,10 +420,6 @@
 	return;
     }
     
-    if ( shutdown->priv->block_shutdown )
-	return;
-
-    shutdown->priv->block_shutdown = TRUE;
     xfpm_shutdown_internal (dbus_g_connection_get_connection(shutdown->priv->bus), "Suspend", &error_internal);
     shutdown->priv->block_shutdown = FALSE;
      

Modified: xfce4-power-manager/trunk/src/xfpm-shutdown.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-shutdown.h	2009-04-03 19:22:19 UTC (rev 7106)
+++ xfce4-power-manager/trunk/src/xfpm-shutdown.h	2009-04-04 09:30:12 UTC (rev 7107)
@@ -54,6 +54,12 @@
 GType        		  xfpm_shutdown_get_type        (void) G_GNUC_CONST;
 XfpmShutdown       	 *xfpm_shutdown_new             (void);
 
+gboolean                  xfpm_shutdown_add_callback    (XfpmShutdown *shutdown,
+							 GSourceFunc func,
+							 guint timeout,
+							 gpointer data);
+							 
+
 void                      xfpm_shutdown			(XfpmShutdown *shutdown,
 							 GError **error);
 

Modified: xfce4-power-manager/trunk/src/xfpm-tray-icon.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-tray-icon.c	2009-04-03 19:22:19 UTC (rev 7106)
+++ xfce4-power-manager/trunk/src/xfpm-tray-icon.c	2009-04-04 09:30:12 UTC (rev 7107)
@@ -171,7 +171,11 @@
 	lock_screen = xfpm_xfconf_get_property_bool (tray->priv->conf, LOCK_SCREEN_ON_SLEEP);
 	if ( lock_screen )
 	    xfpm_lock_screen ();
-	g_timeout_add_seconds (4, (GSourceFunc) xfpm_tray_icon_do_hibernate, tray);
+	    
+	xfpm_shutdown_add_callback (tray->priv->shutdown, 
+				    (GSourceFunc) xfpm_tray_icon_do_hibernate, 
+				    2,
+				    tray);
 	xfpm_send_message_to_network_manager ("sleep");
     }
 }
@@ -198,7 +202,12 @@
 	lock_screen = xfpm_xfconf_get_property_bool (tray->priv->conf, LOCK_SCREEN_ON_SLEEP);
 	if ( lock_screen )
 	    xfpm_lock_screen ();
-	g_timeout_add_seconds (4, (GSourceFunc) xfpm_tray_icon_do_suspend, tray);
+	
+	xfpm_shutdown_add_callback (tray->priv->shutdown, 
+				    (GSourceFunc) xfpm_tray_icon_do_suspend, 
+				    2,
+				    tray);
+				    
 	xfpm_send_message_to_network_manager ("sleep");
     }
 }
@@ -208,7 +217,7 @@
 {
     gboolean ret;
     
-    ret = xfce_confirm (_("Exit Xfce power manager"),
+    ret = xfce_confirm (_("Quit the Xfce power manager"),
 	                GTK_STOCK_YES,
 			_("Quit"));
     if ( ret )




More information about the Goodies-commits mailing list