From 348d599f8b8a70a8690613f1f9b215c2ff469a08 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Mon, 31 May 2010 15:17:02 +0000 Subject: [PATCH] lock on suspend option++ (also on hibernate - same options) SVN revision: 49354 --- config/default/e.src | 3 ++- config/illume-home/e.src | 3 ++- config/illume/e.src | 3 ++- config/minimalist/e.src | 3 ++- config/netbook/e.src | 3 ++- config/scaleable/e.src | 3 ++- config/standard/e.src | 3 ++- src/bin/e_config.c | 5 +++++ src/bin/e_config.h | 3 ++- src/bin/e_sys.c | 4 ++++ src/modules/conf_desklock/e_int_config_desklock.c | 9 +++++++++ 11 files changed, 34 insertions(+), 8 deletions(-) diff --git a/config/default/e.src b/config/default/e.src index a432f1a30..e423651d6 100644 --- a/config/default/e.src +++ b/config/default/e.src @@ -1,5 +1,5 @@ group "E_Config" struct { - value "config_version" int: 65845; + value "config_version" int: 65847; value "show_splash" int: 0; value "init_default_theme" string: "default.edj"; value "desktop_default_name" string: "Desktop %i, %i"; @@ -432,6 +432,7 @@ group "E_Config" struct { value "desklock_auth_method" int: 0; value "desklock_login_box_zone" int: -1; value "desklock_start_locked" int: 0; + value "desklock_on_suspend" int: 0; value "desklock_autolock_screensaver" int: 0; value "desklock_post_screensaver_time" double: 0.0; value "desklock_autolock_idle" int: 0; diff --git a/config/illume-home/e.src b/config/illume-home/e.src index f0a298741..181db6ff0 100644 --- a/config/illume-home/e.src +++ b/config/illume-home/e.src @@ -1247,7 +1247,7 @@ group "E_Config" struct { value "priority" int: -1000; } } - value "config_version" int: 65845; + value "config_version" int: 65847; value "show_splash" int: 1; value "init_default_theme" string: "default.edj"; value "desktop_default_name" string: "Desktop %i, %i"; @@ -1358,6 +1358,7 @@ group "E_Config" struct { value "desklock_auth_method" int: 0; value "desklock_login_box_zone" int: -1; value "desklock_start_locked" int: 0; + value "desklock_on_suspend" int: 0; value "desklock_autolock_screensaver" int: 0; value "desklock_post_screensaver_time" double: 0.0000000000000000000000000; value "desklock_autolock_idle" int: 0; diff --git a/config/illume/e.src b/config/illume/e.src index 9bbb9917e..e0b33344c 100644 --- a/config/illume/e.src +++ b/config/illume/e.src @@ -1,5 +1,5 @@ group "E_Config" struct { - value "config_version" int: 65845; + value "config_version" int: 65847; value "show_splash" int: 1; value "init_default_theme" string: "default.edj"; value "desktop_default_name" string: "Desktop %i, %i"; @@ -655,6 +655,7 @@ group "E_Config" struct { value "desklock_auth_method" int: 0; value "desklock_login_box_zone" int: -1; value "desklock_start_locked" int: 0; + value "desklock_on_suspend" int: 0; value "desklock_autolock_screensaver" int: 0; value "desklock_post_screensaver_time" double: 0.0; value "desklock_autolock_idle" int: 0; diff --git a/config/minimalist/e.src b/config/minimalist/e.src index 77e157055..eac7b37b9 100644 --- a/config/minimalist/e.src +++ b/config/minimalist/e.src @@ -1,5 +1,5 @@ group "E_Config" struct { - value "config_version" int: 65845; + value "config_version" int: 65847; value "show_splash" int: 1; value "init_default_theme" string: "default.edj"; value "desktop_default_background" string: "Light_Gradient.edj"; @@ -1846,6 +1846,7 @@ group "E_Config" struct { value "desklock_auth_method" int: 0; value "desklock_login_box_zone" int: -1; value "desklock_start_locked" int: 0; + value "desklock_on_suspend" int: 0; value "desklock_autolock_screensaver" int: 0; value "desklock_post_screensaver_time" double: 0.0; value "desklock_autolock_idle" int: 0; diff --git a/config/netbook/e.src b/config/netbook/e.src index df99455ad..40309373a 100644 --- a/config/netbook/e.src +++ b/config/netbook/e.src @@ -1,5 +1,5 @@ group "E_Config" struct { - value "config_version" int: 65845; + value "config_version" int: 65847; value "show_splash" int: 1; value "init_default_theme" string: "default.edj"; value "desktop_default_background" string: "Dark_Gradient.edj"; @@ -1910,6 +1910,7 @@ group "E_Config" struct { value "desklock_auth_method" int: 0; value "desklock_login_box_zone" int: -1; value "desklock_start_locked" int: 0; + value "desklock_on_suspend" int: 0; value "desklock_autolock_screensaver" int: 0; value "desklock_post_screensaver_time" double: 0.0; value "desklock_autolock_idle" int: 0; diff --git a/config/scaleable/e.src b/config/scaleable/e.src index 53e684e2c..54a676a6d 100644 --- a/config/scaleable/e.src +++ b/config/scaleable/e.src @@ -1,5 +1,5 @@ group "E_Config" struct { - value "config_version" int: 65845; + value "config_version" int: 65847; value "show_splash" int: 1; value "init_default_theme" string: "default.edj"; value "desktop_default_name" string: "Desktop %i, %i"; @@ -1946,6 +1946,7 @@ group "E_Config" struct { value "desklock_auth_method" int: 0; value "desklock_login_box_zone" int: -1; value "desklock_start_locked" int: 0; + value "desklock_on_suspend" int: 0; value "desklock_autolock_screensaver" int: 0; value "desklock_post_screensaver_time" double: 0.0; value "desklock_autolock_idle" int: 0; diff --git a/config/standard/e.src b/config/standard/e.src index 7225b59be..7b12970ad 100644 --- a/config/standard/e.src +++ b/config/standard/e.src @@ -1,5 +1,5 @@ group "E_Config" struct { - value "config_version" int: 65845; + value "config_version" int: 65847; value "show_splash" int: 1; value "init_default_theme" string: "default.edj"; value "desktop_default_name" string: "Desktop %i, %i"; @@ -2043,6 +2043,7 @@ group "E_Config" struct { value "desklock_auth_method" int: 0; value "desklock_login_box_zone" int: -1; value "desklock_start_locked" int: 0; + value "desklock_on_suspend" int: 0; value "desklock_autolock_screensaver" int: 0; value "desklock_post_screensaver_time" double: 0.0; value "desklock_autolock_idle" int: 0; diff --git a/src/bin/e_config.c b/src/bin/e_config.c index 4063ad1c6..b2673a611 100644 --- a/src/bin/e_config.c +++ b/src/bin/e_config.c @@ -622,6 +622,7 @@ e_config_init(void) E_CONFIG_VAL(D, T, desklock_auth_method, INT); E_CONFIG_VAL(D, T, desklock_login_box_zone, INT); E_CONFIG_VAL(D, T, desklock_start_locked, INT); + E_CONFIG_VAL(D, T, desklock_on_suspend, INT); E_CONFIG_VAL(D, T, desklock_autolock_screensaver, INT); E_CONFIG_VAL(D, T, desklock_post_screensaver_time, DOUBLE); E_CONFIG_VAL(D, T, desklock_autolock_idle, INT); @@ -999,6 +1000,10 @@ e_config_load(void) _e_config_acpi_bindings_add(); IFCFGEND; + IFCFG(0x0137); + COPYVAL(desklock_on_suspend); + IFCFGEND; + e_config->config_version = E_CONFIG_FILE_VERSION; _e_config_free(tcfg); } diff --git a/src/bin/e_config.h b/src/bin/e_config.h index 4cd1ed887..9c9f8182f 100644 --- a/src/bin/e_config.h +++ b/src/bin/e_config.h @@ -35,7 +35,7 @@ typedef struct _E_Event_Config_Icon_Theme E_Event_Config_Icon_Theme; /* increment this whenever a new set of config values are added but the users * config doesn't need to be wiped - simply new values need to be put in */ -#define E_CONFIG_FILE_GENERATION 0x0136 +#define E_CONFIG_FILE_GENERATION 0x0137 #define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH << 16) | E_CONFIG_FILE_GENERATION) #define E_EVAS_ENGINE_DEFAULT 0 @@ -205,6 +205,7 @@ struct _E_Config int desklock_auth_method; // GUI int desklock_login_box_zone; // GUI int desklock_start_locked; // GUI + int desklock_on_suspend; // GUI int desklock_autolock_screensaver; // GUI double desklock_post_screensaver_time; // GUI int desklock_autolock_idle; // GUI diff --git a/src/bin/e_sys.c b/src/bin/e_sys.c index 2bc197c26..133eab97f 100644 --- a/src/bin/e_sys.c +++ b/src/bin/e_sys.c @@ -629,6 +629,8 @@ _e_sys_action_do(E_Sys_Action a, char *param) } else { + if (e_config->desklock_on_suspend) e_desklock_show(); + _e_sys_exe = ecore_exe_run(buf, NULL); od = e_obj_dialog_new(e_container_current_get(e_manager_current_get()), _("Suspending"), "E", "_sys_suspend"); @@ -655,6 +657,8 @@ _e_sys_action_do(E_Sys_Action a, char *param) } else { + if (e_config->desklock_on_suspend) e_desklock_show(); + _e_sys_exe = ecore_exe_run(buf, NULL); od = e_obj_dialog_new(e_container_current_get(e_manager_current_get()), _("Hibernating"), "E", "_sys_hibernate"); diff --git a/src/modules/conf_desklock/e_int_config_desklock.c b/src/modules/conf_desklock/e_int_config_desklock.c index b0f5c4153..b3271409a 100644 --- a/src/modules/conf_desklock/e_int_config_desklock.c +++ b/src/modules/conf_desklock/e_int_config_desklock.c @@ -43,6 +43,7 @@ struct _E_Config_Dialog_Data /* Basic props */ int start_locked; + int lock_on_suspend; int auto_lock; int screensaver_lock; double idle_time; @@ -129,6 +130,7 @@ _fill_data(E_Config_Dialog_Data *cfdata) cfdata->custom_lock_cmd = strdup(e_config->desklock_custom_desklock_cmd); cfdata->start_locked = e_config->desklock_start_locked; + cfdata->lock_on_suspend = e_config->desklock_on_suspend; cfdata->auto_lock = e_config->desklock_autolock_idle; cfdata->screensaver_lock = e_config->desklock_autolock_screensaver; cfdata->idle_time = e_config->desklock_autolock_idle_timeout / 60; @@ -202,6 +204,10 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) &cfdata->start_locked); e_widget_disabled_set(ow, !cfdata->use_xscreensaver); e_widget_framelist_object_append(of, ow); + ow = e_widget_check_add(evas, _("Lock on Suspend"), + &cfdata->lock_on_suspend); + e_widget_disabled_set(ow, !cfdata->use_xscreensaver); + e_widget_framelist_object_append(of, ow); ow = e_widget_check_add(evas, _("Lock when X screensaver activates"), &cfdata->screensaver_lock); e_widget_on_change_hook_set(ow, _basic_screensaver_lock_cb_changed, cfdata); @@ -239,6 +245,7 @@ static int _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) { e_config->desklock_start_locked = cfdata->start_locked; + e_config->desklock_on_suspend = cfdata->lock_on_suspend; e_config->desklock_autolock_idle = cfdata->auto_lock; e_config->desklock_autolock_screensaver = cfdata->screensaver_lock; e_config->desklock_post_screensaver_time = cfdata->post_screensaver_time; @@ -252,6 +259,7 @@ _basic_check_changed(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) { return ((e_config->desklock_start_locked != cfdata->start_locked) || + (e_config->desklock_on_suspend != cfdata->lock_on_suspend) || (e_config->desklock_autolock_idle != cfdata->auto_lock) || (e_config->desklock_autolock_screensaver != cfdata->screensaver_lock) || (e_config->desklock_post_screensaver_time != cfdata->post_screensaver_time) || @@ -473,6 +481,7 @@ static int _adv_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) { e_config->desklock_start_locked = cfdata->start_locked; + e_config->desklock_on_suspend = cfdata->lock_on_suspend; e_config->desklock_autolock_idle = cfdata->auto_lock; e_config->desklock_autolock_screensaver = cfdata->screensaver_lock; e_config->desklock_autolock_idle_timeout = cfdata->idle_time * 60;