Option to enable desklock after screensaver timeout.
This option will make it possible to lock the screen after some seconds screensaver started. It is useful in cases you want a short screensaver and uses screenlock but often need to unlock it quickly (ie: was talking to someone at the office, screensaver starts and you would like to quickly avoid desklock, otherwise need to stop talking, unlock and continue). SVN revision: 40413
This commit is contained in:
parent
cf9748a78c
commit
f7b1ad0f9b
|
@ -1,5 +1,5 @@
|
|||
group "E_Config" struct {
|
||||
value "config_version" int: 65840;
|
||||
value "config_version" int: 65841;
|
||||
value "show_splash" int: 0;
|
||||
value "init_default_theme" string: "default.edj";
|
||||
value "desktop_default_name" string: "Desktop %i, %i";
|
||||
|
@ -446,6 +446,7 @@ group "E_Config" struct {
|
|||
value "desklock_login_box_zone" int: -1;
|
||||
value "desklock_start_locked" int: 0;
|
||||
value "desklock_autolock_screensaver" int: 0;
|
||||
value "desklock_post_screensaver_time" double: 0.0;
|
||||
value "desklock_autolock_idle" int: 0;
|
||||
value "desklock_autolock_idle_timeout" double: 300.0000000000000000000000000;
|
||||
value "desklock_use_custom_desklock" int: 0;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
group "E_Config" struct {
|
||||
value "config_version" int: 65840;
|
||||
value "config_version" int: 65841;
|
||||
value "show_splash" int: 1;
|
||||
value "init_default_theme" string: "default.edj";
|
||||
value "desktop_default_name" string: "Desktop %i, %i";
|
||||
|
@ -656,6 +656,7 @@ group "E_Config" struct {
|
|||
value "desklock_login_box_zone" int: -1;
|
||||
value "desklock_start_locked" int: 0;
|
||||
value "desklock_autolock_screensaver" int: 0;
|
||||
value "desklock_post_screensaver_time" double: 0.0;
|
||||
value "desklock_autolock_idle" int: 0;
|
||||
value "desklock_autolock_idle_timeout" double: 300.0000000000000000000000000;
|
||||
value "desklock_use_custom_desklock" int: 0;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
group "E_Config" struct {
|
||||
value "config_version" int: 65840;
|
||||
value "config_version" int: 65841;
|
||||
value "show_splash" int: 1;
|
||||
value "init_default_theme" string: "default.edj";
|
||||
value "desktop_default_background" string: "Light_Gradient.edj";
|
||||
|
@ -1860,6 +1860,7 @@ group "E_Config" struct {
|
|||
value "desklock_login_box_zone" int: -1;
|
||||
value "desklock_start_locked" int: 0;
|
||||
value "desklock_autolock_screensaver" int: 0;
|
||||
value "desklock_post_screensaver_time" double: 0.0;
|
||||
value "desklock_autolock_idle" int: 0;
|
||||
value "desklock_autolock_idle_timeout" double: 300.0000000000000000000000000;
|
||||
value "desklock_use_custom_desklock" int: 0;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
group "E_Config" struct {
|
||||
value "config_version" int: 65840;
|
||||
value "config_version" int: 65841;
|
||||
value "show_splash" int: 1;
|
||||
value "init_default_theme" string: "default.edj";
|
||||
value "desktop_default_background" string: "Dark_Gradient.edj";
|
||||
|
@ -1924,6 +1924,7 @@ group "E_Config" struct {
|
|||
value "desklock_login_box_zone" int: -1;
|
||||
value "desklock_start_locked" int: 0;
|
||||
value "desklock_autolock_screensaver" int: 0;
|
||||
value "desklock_post_screensaver_time" double: 0.0;
|
||||
value "desklock_autolock_idle" int: 0;
|
||||
value "desklock_autolock_idle_timeout" double: 300.0000000000000000000000000;
|
||||
value "desklock_use_custom_desklock" int: 0;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
group "E_Config" struct {
|
||||
value "config_version" int: 65840;
|
||||
value "config_version" int: 65841;
|
||||
value "show_splash" int: 1;
|
||||
value "init_default_theme" string: "default.edj";
|
||||
value "desktop_default_name" string: "Desktop %i, %i";
|
||||
|
@ -1947,6 +1947,7 @@ group "E_Config" struct {
|
|||
value "desklock_login_box_zone" int: -1;
|
||||
value "desklock_start_locked" int: 0;
|
||||
value "desklock_autolock_screensaver" int: 0;
|
||||
value "desklock_post_screensaver_time" double: 0.0;
|
||||
value "desklock_autolock_idle" int: 0;
|
||||
value "desklock_autolock_idle_timeout" double: 300.0000000000000000000000000;
|
||||
value "desklock_use_custom_desklock" int: 0;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
group "E_Config" struct {
|
||||
value "config_version" int: 65840;
|
||||
value "config_version" int: 65841;
|
||||
value "show_splash" int: 1;
|
||||
value "init_default_theme" string: "default.edj";
|
||||
value "desktop_default_name" string: "Desktop %i, %i";
|
||||
|
@ -1957,6 +1957,7 @@ group "E_Config" struct {
|
|||
value "desklock_login_box_zone" int: -1;
|
||||
value "desklock_start_locked" int: 0;
|
||||
value "desklock_autolock_screensaver" int: 0;
|
||||
value "desklock_post_screensaver_time" double: 0.0;
|
||||
value "desklock_autolock_idle" int: 0;
|
||||
value "desklock_autolock_idle_timeout" double: 300.0000000000000000000000000;
|
||||
value "desklock_use_custom_desklock" int: 0;
|
||||
|
|
|
@ -567,6 +567,7 @@ e_config_init(void)
|
|||
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_autolock_screensaver, INT);
|
||||
E_CONFIG_VAL(D, T, desklock_post_screensaver_time, DOUBLE);
|
||||
E_CONFIG_VAL(D, T, desklock_autolock_idle, INT);
|
||||
E_CONFIG_VAL(D, T, desklock_autolock_idle_timeout, DOUBLE);
|
||||
E_CONFIG_VAL(D, T, desklock_use_custom_desklock, INT);
|
||||
|
@ -892,6 +893,10 @@ e_config_load(void)
|
|||
COPYVAL(mode.offline);
|
||||
IFCFGEND;
|
||||
|
||||
IFCFG(0x0131);
|
||||
COPYVAL(desklock_post_screensaver_time);
|
||||
IFCFGEND;
|
||||
|
||||
e_config->config_version = E_CONFIG_FILE_VERSION;
|
||||
_e_config_free(tcfg);
|
||||
}
|
||||
|
@ -978,6 +983,7 @@ e_config_load(void)
|
|||
E_CONFIG_LIMIT(e_config->font_hinting, 0, 2);
|
||||
E_CONFIG_LIMIT(e_config->desklock_login_box_zone, -2, 1000);
|
||||
E_CONFIG_LIMIT(e_config->desklock_autolock_screensaver, 0, 1);
|
||||
E_CONFIG_LIMIT(e_config->desklock_post_screensaver_time, 0.0, 300.0);
|
||||
E_CONFIG_LIMIT(e_config->desklock_autolock_idle, 0, 1);
|
||||
E_CONFIG_LIMIT(e_config->desklock_autolock_idle_timeout, 1.0, 5400.0);
|
||||
E_CONFIG_LIMIT(e_config->desklock_use_custom_desklock, 0, 1);
|
||||
|
|
|
@ -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 0x0130
|
||||
#define E_CONFIG_FILE_GENERATION 0x0131
|
||||
#define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH << 16) | E_CONFIG_FILE_GENERATION)
|
||||
|
||||
#define E_EVAS_ENGINE_DEFAULT 0
|
||||
|
@ -218,6 +218,7 @@ struct _E_Config
|
|||
int desklock_login_box_zone; // GUI
|
||||
int desklock_start_locked; // GUI
|
||||
int desklock_autolock_screensaver; // GUI
|
||||
double desklock_post_screensaver_time; // GUI
|
||||
int desklock_autolock_idle; // GUI
|
||||
double desklock_autolock_idle_timeout; // GUI
|
||||
int desklock_use_custom_desklock; // GUI
|
||||
|
|
|
@ -45,6 +45,7 @@ struct _Frame_Extents
|
|||
|
||||
static Eina_List *managers = NULL;
|
||||
static Eina_Hash *frame_extents = NULL;
|
||||
static Ecore_Timer *timer_post_screensaver_lock = NULL;
|
||||
|
||||
/* externally accessible functions */
|
||||
EAPI int
|
||||
|
@ -69,6 +70,13 @@ e_manager_shutdown(void)
|
|||
eina_hash_free(frame_extents);
|
||||
frame_extents = NULL;
|
||||
}
|
||||
|
||||
if (timer_post_screensaver_lock)
|
||||
{
|
||||
ecore_timer_del(timer_post_screensaver_lock);
|
||||
timer_post_screensaver_lock = NULL;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -785,18 +793,39 @@ _e_manager_cb_ping(void *data, int ev_type __UNUSED__, void *ev)
|
|||
}
|
||||
|
||||
static int
|
||||
_e_manager_cb_screensaver_notify(void *data, int ev_type __UNUSED__, void *ev)
|
||||
_e_manager_cb_timer_post_screensaver_lock(void *data __UNUSED__)
|
||||
{
|
||||
E_Manager *man;
|
||||
Ecore_X_Event_Screensaver_Notify *e;
|
||||
e_desklock_show();
|
||||
timer_post_screensaver_lock = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
man = data;
|
||||
e = ev;
|
||||
static int
|
||||
_e_manager_cb_screensaver_notify(void *data __UNUSED__, int ev_type __UNUSED__, void *ev)
|
||||
{
|
||||
Ecore_X_Event_Screensaver_Notify *e = ev;
|
||||
|
||||
if (timer_post_screensaver_lock)
|
||||
{
|
||||
ecore_timer_del(timer_post_screensaver_lock);
|
||||
timer_post_screensaver_lock = NULL;
|
||||
}
|
||||
|
||||
if (e->on)
|
||||
{
|
||||
if (e_config->desklock_autolock_screensaver)
|
||||
e_desklock_show();
|
||||
{
|
||||
if (e_config->desklock_post_screensaver_time <= 1.0)
|
||||
{
|
||||
e_desklock_show();
|
||||
}
|
||||
else
|
||||
{
|
||||
timer_post_screensaver_lock = ecore_timer_add
|
||||
(e_config->desklock_post_screensaver_time,
|
||||
_e_manager_cb_timer_post_screensaver_lock, NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -44,6 +44,7 @@ struct _E_Config_Dialog_Data
|
|||
int auto_lock;
|
||||
int screensaver_lock;
|
||||
double idle_time;
|
||||
double post_screensaver_time;
|
||||
|
||||
/* Adv props */
|
||||
int bg_method;
|
||||
|
@ -57,6 +58,8 @@ struct _E_Config_Dialog_Data
|
|||
struct {
|
||||
Evas_Object *auto_lock_label;
|
||||
Evas_Object *auto_lock_slider;
|
||||
Evas_Object *post_screensaver_label;
|
||||
Evas_Object *post_screensaver_slider;
|
||||
} basic;
|
||||
} gui;
|
||||
};
|
||||
|
@ -121,6 +124,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
|
|||
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;
|
||||
cfdata->post_screensaver_time = e_config->desklock_post_screensaver_time;
|
||||
if (e_config->desklock_login_box_zone >= 0)
|
||||
{
|
||||
cfdata->login_zone = 0;
|
||||
|
@ -163,6 +167,18 @@ _basic_auto_lock_cb_changed(void *data, Evas_Object *o)
|
|||
e_widget_disabled_set(cfdata->gui.basic.auto_lock_slider, disable);
|
||||
}
|
||||
|
||||
static void
|
||||
_basic_screensaver_lock_cb_changed(void *data, Evas_Object *o)
|
||||
{
|
||||
E_Config_Dialog_Data *cfdata = data;
|
||||
int disable;
|
||||
|
||||
disable = ((!cfdata->use_xscreensaver) ||
|
||||
(!cfdata->screensaver_lock));
|
||||
e_widget_disabled_set(cfdata->gui.basic.post_screensaver_label, disable);
|
||||
e_widget_disabled_set(cfdata->gui.basic.post_screensaver_slider, disable);
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
_basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
|
@ -177,6 +193,15 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
|
|||
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);
|
||||
e_widget_disabled_set(ow, !cfdata->use_xscreensaver);
|
||||
e_widget_framelist_object_append(of, ow);
|
||||
ow = e_widget_label_add(evas, _("Time after screensaver activated"));
|
||||
cfdata->gui.basic.post_screensaver_label = ow;
|
||||
e_widget_framelist_object_append(of, ow);
|
||||
ow = e_widget_slider_add(evas, 1, 0, _("%1.0f seconds"), 0.0, 300.0, 10.0, 0,
|
||||
&(cfdata->post_screensaver_time), NULL, 100);
|
||||
cfdata->gui.basic.post_screensaver_slider = ow;
|
||||
e_widget_disabled_set(ow, !cfdata->use_xscreensaver);
|
||||
e_widget_framelist_object_append(of, ow);
|
||||
ow = e_widget_check_add(evas, _("Lock when idle time exceeded"),
|
||||
|
@ -194,6 +219,7 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
|
|||
e_widget_list_object_append(o, of, 1, 1, 0.5);
|
||||
|
||||
_basic_auto_lock_cb_changed(cfdata, NULL);
|
||||
_basic_screensaver_lock_cb_changed(cfdata, NULL);
|
||||
|
||||
return o;
|
||||
}
|
||||
|
@ -204,6 +230,7 @@ _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
e_config->desklock_start_locked = cfdata->start_locked;
|
||||
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;
|
||||
e_config->desklock_autolock_idle_timeout = cfdata->idle_time * 60;
|
||||
e_config_save_queue();
|
||||
return 1;
|
||||
|
@ -216,6 +243,7 @@ _basic_check_changed(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
((e_config->desklock_start_locked != cfdata->start_locked) ||
|
||||
(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) ||
|
||||
(e_config->desklock_autolock_idle_timeout != cfdata->idle_time * 60));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue