forked from enlightenment/enlightenment
and allow config to suspend even if on AC power (ie if disabled wont
suspend on blank if connected to AC) SVN revision: 62656
This commit is contained in:
parent
d88e160f25
commit
9e0032aabf
|
@ -1612,6 +1612,7 @@ group "E_Config" struct {
|
|||
value "screensaver_ask_presentation" uchar: 1;
|
||||
value "screensaver_ask_presentation_timeout" double: 30.0000000000000000000000000;
|
||||
value "screensaver_suspend" uchar: 1;
|
||||
value "screensaver_suspend_on_ac" uchar: 0;
|
||||
value "screensaver_suspend_delay" double: 5.0000000000000000000000000;
|
||||
value "dpms_enable" int: 1;
|
||||
value "dpms_standby_enable" int: 1;
|
||||
|
|
|
@ -1773,6 +1773,7 @@ group "E_Config" struct {
|
|||
value "screensaver_ask_presentation" uchar: 1;
|
||||
value "screensaver_ask_presentation_timeout" double: 30.0000000000000000000000000;
|
||||
value "screensaver_suspend" uchar: 0;
|
||||
value "screensaver_suspend_on_ac" uchar: 0;
|
||||
value "screensaver_suspend_delay" double: 15.0000000000000000000000000;
|
||||
value "dpms_enable" int: 1;
|
||||
value "dpms_standby_enable" int: 1;
|
||||
|
|
|
@ -798,6 +798,7 @@ e_config_init(void)
|
|||
E_CONFIG_VAL(D, T, screensaver_ask_presentation_timeout, DOUBLE);
|
||||
|
||||
E_CONFIG_VAL(D, T, screensaver_suspend, UCHAR);
|
||||
E_CONFIG_VAL(D, T, screensaver_suspend_on_ac, UCHAR);
|
||||
E_CONFIG_VAL(D, T, screensaver_suspend_delay, DOUBLE);
|
||||
|
||||
E_CONFIG_VAL(D, T, dpms_enable, INT);
|
||||
|
|
|
@ -225,6 +225,7 @@ struct _E_Config
|
|||
double screensaver_ask_presentation_timeout; // GUI
|
||||
|
||||
unsigned char screensaver_suspend;
|
||||
unsigned char screensaver_suspend_on_ac;
|
||||
double screensaver_suspend_delay;
|
||||
|
||||
int dpms_enable; // GUI
|
||||
|
|
|
@ -9,6 +9,7 @@ static Ecore_Event_Handler *_e_screensaver_handler_border_iconify = NULL;
|
|||
static Ecore_Event_Handler *_e_screensaver_handler_border_uniconify = NULL;
|
||||
static Ecore_Event_Handler *_e_screensaver_handler_border_desk_set = NULL;
|
||||
static Ecore_Event_Handler *_e_screensaver_handler_desk_show = NULL;
|
||||
static Ecore_Event_Handler *_e_screensaver_handler_powersave = NULL;
|
||||
static E_Dialog *_e_screensaver_ask_presentation_dia = NULL;
|
||||
static int _e_screensaver_ask_presentation_count = 0;
|
||||
|
||||
|
@ -18,6 +19,7 @@ static int _e_screensaver_blanking = 0;
|
|||
static int _e_screensaver_expose = 0;
|
||||
|
||||
static Ecore_Timer *_e_screensaver_suspend_timer = NULL;
|
||||
static Eina_Bool _e_screensaver_on = EINA_FALSE;
|
||||
|
||||
EAPI void
|
||||
e_screensaver_update(void)
|
||||
|
@ -160,12 +162,31 @@ _e_screensaver_ask_presentation_mode(void)
|
|||
_e_screensaver_ask_presentation_dia = dia;
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
_e_screensaver_handler_powersave_cb(void *data __UNUSED__, int type __UNUSED__, void *event __UNUSED__)
|
||||
{
|
||||
if ((_e_screensaver_on) && (!_e_screensaver_suspend_timer))
|
||||
{
|
||||
if (e_config->screensaver_suspend)
|
||||
{
|
||||
if ((e_config->screensaver_suspend_on_ac) ||
|
||||
(e_powersave_mode_get() > E_POWERSAVE_MODE_LOW))
|
||||
e_sys_action_do(E_SYS_SUSPEND, NULL);
|
||||
}
|
||||
}
|
||||
return ECORE_CALLBACK_PASS_ON;
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
_e_screensaver_suspend_cb(void *data __UNUSED__)
|
||||
{
|
||||
_e_screensaver_suspend_timer = NULL;
|
||||
if (e_config->screensaver_suspend)
|
||||
e_sys_action_do(E_SYS_SUSPEND, NULL);
|
||||
{
|
||||
if ((e_config->screensaver_suspend_on_ac) ||
|
||||
(e_powersave_mode_get() > E_POWERSAVE_MODE_LOW))
|
||||
e_sys_action_do(E_SYS_SUSPEND, NULL);
|
||||
}
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
|
@ -177,6 +198,7 @@ _e_screensaver_handler_screensaver_notify_cb(void *data __UNUSED__, int type __U
|
|||
|
||||
if (e->on)
|
||||
{
|
||||
_e_screensaver_on = EINA_TRUE;
|
||||
if (_e_screensaver_suspend_timer)
|
||||
{
|
||||
ecore_timer_del(_e_screensaver_suspend_timer);
|
||||
|
@ -189,6 +211,7 @@ _e_screensaver_handler_screensaver_notify_cb(void *data __UNUSED__, int type __U
|
|||
}
|
||||
else
|
||||
{
|
||||
_e_screensaver_on = EINA_FALSE;
|
||||
if (_e_screensaver_suspend_timer)
|
||||
{
|
||||
ecore_timer_del(_e_screensaver_suspend_timer);
|
||||
|
@ -266,6 +289,9 @@ e_screensaver_init(void)
|
|||
_e_screensaver_handler_desk_show = ecore_event_handler_add
|
||||
(E_EVENT_DESK_SHOW, _e_screensaver_handler_desk_show_cb, NULL);
|
||||
|
||||
_e_screensaver_handler_powersave = ecore_event_handler_add
|
||||
(E_EVENT_POWERSAVE_UPDATE, _e_screensaver_handler_powersave_cb, NULL);
|
||||
|
||||
_e_screensaver_timeout = ecore_x_screensaver_timeout_get();
|
||||
_e_screensaver_interval = ecore_x_screensaver_interval_get();
|
||||
_e_screensaver_blanking = ecore_x_screensaver_blank_get();
|
||||
|
@ -284,6 +310,13 @@ e_screensaver_shutdown(void)
|
|||
ecore_timer_del(_e_screensaver_suspend_timer);
|
||||
_e_screensaver_suspend_timer = NULL;
|
||||
}
|
||||
|
||||
if (_e_screensaver_handler_powersave)
|
||||
{
|
||||
ecore_event_handler_del(_e_screensaver_handler_powersave);
|
||||
_e_screensaver_handler_powersave = NULL;
|
||||
}
|
||||
|
||||
if (_e_screensaver_handler_config_mode)
|
||||
{
|
||||
ecore_event_handler_del(_e_screensaver_handler_config_mode);
|
||||
|
|
|
@ -570,8 +570,10 @@ _battery_update(int full, int time_left, int time_full, Eina_Bool have_battery,
|
|||
e_powersave_mode_set(E_POWERSAVE_MODE_LOW);
|
||||
else
|
||||
{
|
||||
if ((have_power) || (full > 95))
|
||||
if (have_power)
|
||||
e_powersave_mode_set(E_POWERSAVE_MODE_LOW);
|
||||
else if (full > 95)
|
||||
e_powersave_mode_set(E_POWERSAVE_MODE_MEDIUM);
|
||||
else if (full > 30)
|
||||
e_powersave_mode_set(E_POWERSAVE_MODE_HIGH);
|
||||
else
|
||||
|
|
|
@ -29,6 +29,7 @@ struct _E_Config_Dialog_Data
|
|||
double ask_presentation_timeout;
|
||||
|
||||
int screensaver_suspend;
|
||||
int screensaver_suspend_on_ac;
|
||||
double screensaver_suspend_delay;
|
||||
|
||||
Eina_List *disable_list;
|
||||
|
@ -73,6 +74,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
|
|||
cfdata->ask_presentation = e_config->screensaver_ask_presentation;
|
||||
cfdata->ask_presentation_timeout = e_config->screensaver_ask_presentation_timeout;
|
||||
cfdata->screensaver_suspend = e_config->screensaver_suspend;
|
||||
cfdata->screensaver_suspend_on_ac = e_config->screensaver_suspend_on_ac;
|
||||
cfdata->screensaver_suspend_delay = e_config->screensaver_suspend_delay;
|
||||
}
|
||||
|
||||
|
@ -105,6 +107,7 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
|
|||
e_config->screensaver_ask_presentation = cfdata->ask_presentation;
|
||||
e_config->screensaver_ask_presentation_timeout = cfdata->ask_presentation_timeout;
|
||||
e_config->screensaver_suspend = cfdata->screensaver_suspend;
|
||||
e_config->screensaver_suspend_on_ac = cfdata->screensaver_suspend_on_ac;
|
||||
e_config->screensaver_suspend_delay = cfdata->screensaver_suspend_delay;
|
||||
|
||||
/* Apply settings */
|
||||
|
@ -125,6 +128,7 @@ _basic_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfda
|
|||
(e_config->screensaver_ask_presentation != cfdata->ask_presentation) ||
|
||||
(e_config->screensaver_ask_presentation_timeout != cfdata->ask_presentation_timeout) ||
|
||||
(e_config->screensaver_suspend != cfdata->screensaver_suspend) ||
|
||||
(e_config->screensaver_suspend_on_ac != cfdata->screensaver_suspend_on_ac) ||
|
||||
(e_config->screensaver_suspend_delay != cfdata->screensaver_suspend_delay));
|
||||
}
|
||||
|
||||
|
@ -147,6 +151,10 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data
|
|||
&(cfdata->screensaver_suspend));
|
||||
cfdata->disable_list = eina_list_append(cfdata->disable_list, ow);
|
||||
e_widget_list_object_append(ol, ow, 1, 1, 0.5);
|
||||
ow = e_widget_check_add(evas, _("Even if on power"),
|
||||
&(cfdata->screensaver_suspend_on_ac));
|
||||
cfdata->disable_list = eina_list_append(cfdata->disable_list, ow);
|
||||
e_widget_list_object_append(ol, ow, 1, 1, 0.5);
|
||||
ow = e_widget_label_add(evas, _("Delay until suspend"));
|
||||
cfdata->disable_list = eina_list_append(cfdata->disable_list, ow);
|
||||
e_widget_list_object_append(ol, ow, 1, 1, 0.5);
|
||||
|
|
Loading…
Reference in New Issue