From ea92398f172c483d3a58e405dfcc564b17848b06 Mon Sep 17 00:00:00 2001 From: Alexander Schwinn Date: Thu, 18 Apr 2019 22:53:36 +0200 Subject: [PATCH] Remove option "Ask" on critical power, since it can lead to logout on accident (bug #15158) - usage of separate Enumeration --- common/xfpm-enum-glib.h | 10 ++++++++++ settings/xfpm-settings.c | 15 +++++++-------- src/xfpm-power.c | 26 ++++++++------------------ 3 files changed, 25 insertions(+), 26 deletions(-) diff --git a/common/xfpm-enum-glib.h b/common/xfpm-enum-glib.h index c7cfe3f..7b0c192 100644 --- a/common/xfpm-enum-glib.h +++ b/common/xfpm-enum-glib.h @@ -49,6 +49,16 @@ typedef enum } XfpmShutdownRequest; +typedef enum +{ + XFPM_CRITICAL_DO_NOTIFY, + XFPM_CRITICAL_DO_SUSPEND, + XFPM_CRITICAL_DO_HIBERNATE, + XFPM_CRITICAL_ASK_DEPRECATED, /*to be removed in xfce 4.16 */ + XFPM_CRITICAL_DO_SHUTDOWN + +} XfpmCriticalBatteryAction; + typedef enum { LID_TRIGGER_NOTHING, diff --git a/settings/xfpm-settings.c b/settings/xfpm-settings.c index 26dbfc1..b7026ea 100644 --- a/settings/xfpm-settings.c +++ b/settings/xfpm-settings.c @@ -982,30 +982,29 @@ xfpm_settings_on_battery (XfconfChannel *channel, gboolean auth_suspend, gtk_combo_box_set_model (GTK_COMBO_BOX(battery_critical), GTK_TREE_MODEL(list_store)); gtk_list_store_append(list_store, &iter); - gtk_list_store_set (list_store, &iter, 0, _("Do nothing"), 1, XFPM_DO_NOTHING, -1); + gtk_list_store_set (list_store, &iter, 0, _("Notify"), 1, XFPM_CRITICAL_DO_NOTIFY, -1); + /* default selection if load fails (due to XFPM_ASK not available any more) */ + gtk_combo_box_set_active_iter (GTK_COMBO_BOX (battery_critical), &iter); if ( can_suspend && auth_suspend ) { gtk_list_store_append(list_store, &iter); - gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, XFPM_DO_SUSPEND, -1); + gtk_list_store_set (list_store, &iter, 0, _("Suspend"), 1, XFPM_CRITICAL_DO_SUSPEND, -1); } if ( can_hibernate && auth_hibernate ) { gtk_list_store_append(list_store, &iter); - gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, XFPM_DO_HIBERNATE, -1); + gtk_list_store_set (list_store, &iter, 0, _("Hibernate"), 1, XFPM_CRITICAL_DO_HIBERNATE, -1); } if ( can_shutdown ) { gtk_list_store_append(list_store, &iter); - gtk_list_store_set (list_store, &iter, 0, _("Shutdown"), 1, XFPM_DO_SHUTDOWN, -1); + gtk_list_store_set (list_store, &iter, 0, _("Shutdown"), 1, XFPM_CRITICAL_DO_SHUTDOWN, -1); } - gtk_list_store_append(list_store, &iter); - gtk_list_store_set (list_store, &iter, 0, _("Ask"), 1, XFPM_ASK, -1); - - val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX CRITICAL_BATT_ACTION_CFG, XFPM_DO_NOTHING); + val = xfconf_channel_get_uint (channel, XFPM_PROPERTIES_PREFIX CRITICAL_BATT_ACTION_CFG, XFPM_CRITICAL_DO_NOTIFY); for ( valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list_store), &iter); valid; diff --git a/src/xfpm-power.c b/src/xfpm-power.c index 2aacd84..1c31ae9 100644 --- a/src/xfpm-power.c +++ b/src/xfpm-power.c @@ -753,31 +753,30 @@ xfpm_power_show_critical_action (XfpmPower *power, XfpmBattery *battery) } static void -xfpm_power_process_critical_action (XfpmPower *power, XfpmShutdownRequest req) +xfpm_power_process_critical_action (XfpmPower *power, XfpmCriticalBatteryAction action) { - if ( req == XFPM_ASK ) - g_signal_emit (G_OBJECT (power), signals [ASK_SHUTDOWN], 0); - else if ( req == XFPM_DO_SUSPEND ) + if ( action == XFPM_DO_SUSPEND ) xfpm_power_sleep (power, "Suspend", TRUE); - else if ( req == XFPM_DO_HIBERNATE ) + else if ( action == XFPM_DO_HIBERNATE ) xfpm_power_sleep (power, "Hibernate", TRUE); - else if ( req == XFPM_DO_SHUTDOWN ) + else if ( action == XFPM_DO_SHUTDOWN ) g_signal_emit (G_OBJECT (power), signals [SHUTDOWN], 0); } static void xfpm_power_system_on_critical_power (XfpmPower *power, XfpmBattery *battery) { - XfpmShutdownRequest critical_action; + XfpmCriticalBatteryAction critical_action; g_object_get (G_OBJECT (power->priv->conf), CRITICAL_BATT_ACTION_CFG, &critical_action, NULL); XFPM_DEBUG ("System is running on low power"); - XFPM_DEBUG_ENUM (critical_action, XFPM_TYPE_SHUTDOWN_REQUEST, "Critical battery action"); + XFPM_DEBUG_ENUM (critical_action, XFPM_TYPE_CRITICAL_BATTERY_ACTION, "Critical battery action"); - if ( critical_action == XFPM_DO_NOTHING ) + /* For bw compatibility as well XFPM_CRITICAL_ASK_DEPRECATED will show the warning */ + if ( critical_action == XFPM_CRITICAL_DO_NOTIFY || critical_action == XFPM_CRITICAL_ASK_DEPRECATED ) { xfpm_power_show_critical_action (power, battery); } @@ -1065,15 +1064,6 @@ xfpm_power_class_init (XfpmPowerClass *klass) g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0, G_TYPE_NONE); - signals [ASK_SHUTDOWN] = - g_signal_new ("ask-shutdown", - XFPM_TYPE_POWER, - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(XfpmPowerClass, ask_shutdown), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0, G_TYPE_NONE); - signals [SHUTDOWN] = g_signal_new ("shutdown", XFPM_TYPE_POWER, -- 2.20.1