[cinnamon-settings-daemon] add patch to add support for upower critical action

leigh123linux leigh123linux at fedoraproject.org
Mon May 5 09:40:54 UTC 2014


commit 922aad267be1e4c0958ce06a06d12dd5772355e1
Author: leigh123linux <leigh123linux at googlemail.com>
Date:   Mon May 5 10:41:08 2014 +0100

    add patch to add support for upower critical action

 cinnamon-settings-daemon.spec |    6 ++-
 upower_critical-action.patch  |  102 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 107 insertions(+), 1 deletions(-)
---
diff --git a/cinnamon-settings-daemon.spec b/cinnamon-settings-daemon.spec
index d1e3201..18f0c66 100644
--- a/cinnamon-settings-daemon.spec
+++ b/cinnamon-settings-daemon.spec
@@ -2,7 +2,7 @@
 
 Name:           cinnamon-settings-daemon
 Version:        2.2.2
-Release:        1%{?dist}
+Release:        2%{?dist}
 Summary:        The daemon sharing settings from CINNAMON to GTK+/KDE applications
 
 Group:          System Environment/Daemons
@@ -11,6 +11,7 @@ URL:            http://cinnamon.linuxmint.com
 # To generate tarball
 # wget https://github.com/linuxmint/cinnamon-settings-daemon/tarball/%%{_internal_version} -O cinnamon-settings-daemon-%%{version}.git%%{_internal_version}.tar.gz
 Source0:        http://leigh123linux.fedorapeople.org/pub/cinnamon-settings-daemon/source/cinnamon-settings-daemon-%{version}.tar.gz
+Patch0:         upower_critical-action.patch
 
 Requires:       cinnamon-control-center-filesystem
 Obsoletes:      cinnamon-settings-daemon-updates
@@ -130,6 +131,9 @@ fi
 
 
 %changelog
+* Mon May 05 2014 Leigh Scott <leigh123linux at googlemail.com> - 2.2.2-2
+- add patch to add support for upower critical action
+
 * Fri May 02 2014 Leigh Scott <leigh123linux at googlemail.com> - 2.2.2-1
 - update to 2.2.2
 
diff --git a/upower_critical-action.patch b/upower_critical-action.patch
new file mode 100644
index 0000000..f0f6bef
--- /dev/null
+++ b/upower_critical-action.patch
@@ -0,0 +1,102 @@
+--- a/plugins/power/csd-power-manager.c
++++ b/plugins/power/csd-power-manager.c
+@@ -1159,6 +1159,19 @@ engine_ups_discharging (CsdPowerManager
+ }
+ 
+ static CsdPowerActionType
++#if UP_CHECK_VERSION(0,99,0)
++manager_critical_action_get (CsdPowerManager *manager)
++{
++        CsdPowerActionType policy;
++        char *action;
++        action = up_client_get_critical_action (manager->priv->up_client);
++        /* We don't make the difference between HybridSleep and Hibernate */
++        if (g_strcmp0 (action, "PowerOff") == 0)
++                 policy = CSD_POWER_ACTION_SHUTDOWN;
++        else
++                 policy = CSD_POWER_ACTION_HIBERNATE;
++        g_free (action);
++#else
+ manager_critical_action_get (CsdPowerManager *manager,
+                              gboolean         is_ups)
+ {
+@@ -1166,21 +1179,16 @@ manager_critical_action_get (CsdPowerMan
+ 
+         policy = g_settings_get_enum (manager->priv->settings, "critical-battery-action");
+         if (policy == CSD_POWER_ACTION_SUSPEND) {
+-                if (is_ups == FALSE
+-#if ! UP_CHECK_VERSION(0,99,0)
+-                    && up_client_get_can_suspend (manager->priv->up_client)
+-#endif
+-                )
++                if (is_ups == FALSE &&
++                    up_client_get_can_suspend (manager->priv->up_client))
+                         return policy;
+                 return CSD_POWER_ACTION_SHUTDOWN;
+         } else if (policy == CSD_POWER_ACTION_HIBERNATE) {
+-#if ! UP_CHECK_VERSION(0,99,0)
+                 if (up_client_get_can_hibernate (manager->priv->up_client))
+-#endif
+                         return policy;
+                 return CSD_POWER_ACTION_SHUTDOWN;
+         }
+-
++#endif
+         return policy;
+ }
+ 
+@@ -1188,14 +1196,18 @@ static gboolean
+ manager_critical_action_do (CsdPowerManager *manager,
+                             gboolean         is_ups)
+ {
++#if ! UP_CHECK_VERSION(0,99,0)
+         CsdPowerActionType action_type;
++#endif
+ 
+         /* stop playing the alert as it's too late to do anything now */
+         if (manager->priv->critical_alert_timeout_id > 0)
+                 play_loop_stop (manager);
+ 
++#if ! UP_CHECK_VERSION(0,99,0)
+         action_type = manager_critical_action_get (manager, is_ups);
+         do_power_action_type (manager, action_type);
++#endif
+ 
+         return FALSE;
+ }
+@@ -1428,7 +1440,11 @@ engine_charge_critical (CsdPowerManager
+                 }
+ 
+                 /* we have to do different warnings depending on the policy */
++#if UP_CHECK_VERSION(0,99,0)
++                policy = manager_critical_action_get (manager);
++#else
+                 policy = manager_critical_action_get (manager, FALSE);
++#endif
+ 
+                 /* use different text for different actions */
+                 if (policy == CSD_POWER_ACTION_NOTHING) {
+@@ -1612,7 +1628,11 @@ engine_charge_action (CsdPowerManager *m
+                 title = _("Laptop battery critically low");
+ 
+                 /* we have to do different warnings depending on the policy */
++#if UP_CHECK_VERSION(0,99,0)
++                policy = manager_critical_action_get (manager);
++#else
+                 policy = manager_critical_action_get (manager, FALSE);
++#endif
+ 
+                 /* use different text for different actions */
+                 if (policy == CSD_POWER_ACTION_NOTHING) {
+@@ -1648,7 +1668,11 @@ engine_charge_action (CsdPowerManager *m
+                 title = _("UPS critically low");
+ 
+                 /* we have to do different warnings depending on the policy */
++#if UP_CHECK_VERSION(0,99,0)
++                policy = manager_critical_action_get (manager);
++#else
+                 policy = manager_critical_action_get (manager, TRUE);
++#endif
+ 
+                 /* use different text for different actions */
+                 if (policy == CSD_POWER_ACTION_NOTHING) {


More information about the scm-commits mailing list