From 29cc8a28c26d1dfab6942b4594b8ca4c7a100836 Mon Sep 17 00:00:00 2001
From: Ali Abdallah <ali.slackware@gmail.com>
Date: Thu, 30 Jul 2009 06:45:53 +0000
Subject: [PATCH] 	* Fix a typo that prevents from getting the correct 
 critical configuration. 	* Emit a warning and exit normally if failed
 to register 	DBus names instead of exiting abnormally so the session 
 will try to restart us.

(Old svn revision: 7865)
---
 ChangeLog          |  7 +++++++
 NEWS               |  1 +
 src/xfpm-manager.c | 24 +++++++++++++-----------
 src/xfpm-supply.c  |  2 +-
 4 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 75f093d6..e38a2458 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-07-30: Ali aliov@xfce.org
+	* Fix a typo that prevents from getting the correct 
+	critical configuration.
+	* Emit a warning and exit normally if failed to register
+	DBus names instead of exiting abnormally so the session
+	will try to restart us.
+
 2009-07-27: Ali aliov@xfce.org
 	* src/xfpm-battery.c don't notify when starting up.
 	* src/xfpm-engine.c fix a typo output message.
diff --git a/NEWS b/NEWS
index b1c124ab..18771f93 100644
--- a/NEWS
+++ b/NEWS
@@ -2,3 +2,4 @@ Current
 =======
 - Make it possible to compile without network manager support.
 - Add never show icon to the system tray configuration (bug #5613).
+- Fix a typo that prevents from getting the correct critical configuration (bug #5619).
diff --git a/src/xfpm-manager.c b/src/xfpm-manager.c
index 70323d62..5c65221b 100644
--- a/src/xfpm-manager.c
+++ b/src/xfpm-manager.c
@@ -181,20 +181,21 @@ xfpm_manager_quit (XfpmManager *manager)
     return TRUE;
 }
 
-static void
+static gboolean
 xfpm_manager_reserve_names (XfpmManager *manager)
 {
-    if ( !xfpm_dbus_register_name (dbus_g_connection_get_connection(manager->priv->session_bus),
-				  "org.xfce.PowerManager") ) 
-    {
-	g_error ("Unable to reserve bus name: Xfce Power Manager\n");
-    }
-    
-    if (!xfpm_dbus_register_name (dbus_g_connection_get_connection(manager->priv->session_bus),
+    if ( !xfpm_dbus_register_name (dbus_g_connection_get_connection (manager->priv->session_bus),
+				   "org.xfce.PowerManager") ||
+	 !xfpm_dbus_register_name (dbus_g_connection_get_connection (manager->priv->session_bus),
 				  "org.freedesktop.PowerManagement") )
     {
-	g_error ("Unable to reserve bus name: PowerManagement\n");
+	g_warning ("Unable to reserve bus name: Maybe any already running instance?\n");
+	xfpm_session_quit (manager->priv->session);
+	g_object_unref (G_OBJECT (manager));
+	gtk_main_quit ();
+	return FALSE;
     }
+    return TRUE;
 }
 
 XfpmManager *
@@ -215,8 +216,9 @@ void xfpm_manager_start (XfpmManager *manager)
 {
     gboolean hal_running;
     
-    xfpm_manager_reserve_names (manager);
-    
+    if ( !xfpm_manager_reserve_names (manager) )
+	goto out;
+	
     dbus_g_error_domain_register (XFPM_ERROR,
 				  NULL,
 				  XFPM_TYPE_ERROR);
diff --git a/src/xfpm-supply.c b/src/xfpm-supply.c
index 4d03acc9..d33a0df0 100644
--- a/src/xfpm-supply.c
+++ b/src/xfpm-supply.c
@@ -392,7 +392,7 @@ xfpm_supply_handle_primary_critical (XfpmSupply *supply, XfpmBattery *battery)
 {
     XfpmShutdownRequest critical_action;
     
-    g_object_get (G_OBJECT (supply),
+    g_object_get (G_OBJECT (supply->priv->conf),
 	          CRITICAL_BATT_ACTION_CFG, &critical_action,
 		  NULL);
 
-- 
GitLab