922aad2
--- a/plugins/power/csd-power-manager.c
922aad2
+++ b/plugins/power/csd-power-manager.c
922aad2
@@ -1159,6 +1159,19 @@ engine_ups_discharging (CsdPowerManager
922aad2
 }
922aad2
 
922aad2
 static CsdPowerActionType
922aad2
+#if UP_CHECK_VERSION(0,99,0)
922aad2
+manager_critical_action_get (CsdPowerManager *manager)
922aad2
+{
922aad2
+        CsdPowerActionType policy;
922aad2
+        char *action;
922aad2
+        action = up_client_get_critical_action (manager->priv->up_client);
922aad2
+        /* We don't make the difference between HybridSleep and Hibernate */
922aad2
+        if (g_strcmp0 (action, "PowerOff") == 0)
922aad2
+                 policy = CSD_POWER_ACTION_SHUTDOWN;
922aad2
+        else
922aad2
+                 policy = CSD_POWER_ACTION_HIBERNATE;
922aad2
+        g_free (action);
922aad2
+#else
922aad2
 manager_critical_action_get (CsdPowerManager *manager,
922aad2
                              gboolean         is_ups)
922aad2
 {
922aad2
@@ -1166,21 +1179,16 @@ manager_critical_action_get (CsdPowerMan
922aad2
 
922aad2
         policy = g_settings_get_enum (manager->priv->settings, "critical-battery-action");
922aad2
         if (policy == CSD_POWER_ACTION_SUSPEND) {
922aad2
-                if (is_ups == FALSE
922aad2
-#if ! UP_CHECK_VERSION(0,99,0)
922aad2
-                    && up_client_get_can_suspend (manager->priv->up_client)
922aad2
-#endif
922aad2
-                )
922aad2
+                if (is_ups == FALSE &&
922aad2
+                    up_client_get_can_suspend (manager->priv->up_client))
922aad2
                         return policy;
922aad2
                 return CSD_POWER_ACTION_SHUTDOWN;
922aad2
         } else if (policy == CSD_POWER_ACTION_HIBERNATE) {
922aad2
-#if ! UP_CHECK_VERSION(0,99,0)
922aad2
                 if (up_client_get_can_hibernate (manager->priv->up_client))
922aad2
-#endif
922aad2
                         return policy;
922aad2
                 return CSD_POWER_ACTION_SHUTDOWN;
922aad2
         }
922aad2
-
922aad2
+#endif
922aad2
         return policy;
922aad2
 }
922aad2
 
922aad2
@@ -1188,14 +1196,18 @@ static gboolean
922aad2
 manager_critical_action_do (CsdPowerManager *manager,
922aad2
                             gboolean         is_ups)
922aad2
 {
922aad2
+#if ! UP_CHECK_VERSION(0,99,0)
922aad2
         CsdPowerActionType action_type;
922aad2
+#endif
922aad2
 
922aad2
         /* stop playing the alert as it's too late to do anything now */
922aad2
         if (manager->priv->critical_alert_timeout_id > 0)
922aad2
                 play_loop_stop (manager);
922aad2
 
922aad2
+#if ! UP_CHECK_VERSION(0,99,0)
922aad2
         action_type = manager_critical_action_get (manager, is_ups);
922aad2
         do_power_action_type (manager, action_type);
922aad2
+#endif
922aad2
 
922aad2
         return FALSE;
922aad2
 }
922aad2
@@ -1428,7 +1440,11 @@ engine_charge_critical (CsdPowerManager
922aad2
                 }
922aad2
 
922aad2
                 /* we have to do different warnings depending on the policy */
922aad2
+#if UP_CHECK_VERSION(0,99,0)
922aad2
+                policy = manager_critical_action_get (manager);
922aad2
+#else
922aad2
                 policy = manager_critical_action_get (manager, FALSE);
922aad2
+#endif
922aad2
 
922aad2
                 /* use different text for different actions */
922aad2
                 if (policy == CSD_POWER_ACTION_NOTHING) {
922aad2
@@ -1612,7 +1628,11 @@ engine_charge_action (CsdPowerManager *m
922aad2
                 title = _("Laptop battery critically low");
922aad2
 
922aad2
                 /* we have to do different warnings depending on the policy */
922aad2
+#if UP_CHECK_VERSION(0,99,0)
922aad2
+                policy = manager_critical_action_get (manager);
922aad2
+#else
922aad2
                 policy = manager_critical_action_get (manager, FALSE);
922aad2
+#endif
922aad2
 
922aad2
                 /* use different text for different actions */
922aad2
                 if (policy == CSD_POWER_ACTION_NOTHING) {
922aad2
@@ -1648,7 +1668,11 @@ engine_charge_action (CsdPowerManager *m
922aad2
                 title = _("UPS critically low");
922aad2
 
922aad2
                 /* we have to do different warnings depending on the policy */
922aad2
+#if UP_CHECK_VERSION(0,99,0)
922aad2
+                policy = manager_critical_action_get (manager);
922aad2
+#else
922aad2
                 policy = manager_critical_action_get (manager, TRUE);
922aad2
+#endif
922aad2
 
922aad2
                 /* use different text for different actions */
922aad2
                 if (policy == CSD_POWER_ACTION_NOTHING) {