diff --git a/data/config/default/e.src b/data/config/default/e.src index 4b081d0b3..a2e0e3e2e 100644 --- a/data/config/default/e.src +++ b/data/config/default/e.src @@ -202,8 +202,9 @@ group "E_Config" struct { value "backlight.normal" double: 1.0 value "backlight.dim" double: 0.3; value "backlight.transition" double: 0.5; - value "backlight.timer" double: 1.0; - value "backlight.idle_dim" uchar: 0; + value "backlight.timer" double: 30.0; + value "backlight.battery_timer" double: 20.0; + value "backlight.idle_dim" uchar: 1; value "device_desktop" int: 0; value "device_auto_mount" int: 0; value "device_auto_open" int: 0; diff --git a/data/config/standard/e.src b/data/config/standard/e.src index 31b2982f2..4c716d877 100644 --- a/data/config/standard/e.src +++ b/data/config/standard/e.src @@ -193,8 +193,9 @@ group "E_Config" struct { value "backlight.normal" double: 1.0 value "backlight.dim" double: 0.3; value "backlight.transition" double: 0.5; - value "backlight.timer" double: 1.0; - value "backlight.idle_dim" uchar: 0; + value "backlight.timer" double: 30.0; + value "backlight.battery_timer" double: 20.0; + value "backlight.idle_dim" uchar: 1; value "deskenv.load_xrdb" uchar: 1; value "deskenv.load_xmodmap" uchar: 1; value "deskenv.load_gnome" uchar: 0; diff --git a/data/config/tiling/e.src b/data/config/tiling/e.src index 2ec6af31a..431fce4bd 100644 --- a/data/config/tiling/e.src +++ b/data/config/tiling/e.src @@ -193,6 +193,9 @@ group "E_Config" struct { value "backlight.normal" double: 1.0; value "backlight.dim" double: 0.3; value "backlight.transition" double: 0.5; + value "backlight.timer" double: 30.0; + value "backlight.battery_timer" double: 20.0; + value "backlight.idle_dim" uchar: 1; value "deskenv.load_xrdb" uchar: 1; value "deskenv.load_xmodmap" uchar: 1; value "deskenv.load_gnome" uchar: 0; diff --git a/src/bin/e_config.c b/src/bin/e_config.c index 3f1b12233..5195321a1 100644 --- a/src/bin/e_config.c +++ b/src/bin/e_config.c @@ -739,6 +739,7 @@ _e_config_edd_init(Eina_Bool old) E_CONFIG_VAL(D, T, backlight.dim, DOUBLE); E_CONFIG_VAL(D, T, backlight.transition, DOUBLE); E_CONFIG_VAL(D, T, backlight.timer, DOUBLE); + E_CONFIG_VAL(D, T, backlight.battery_timer, DOUBLE); E_CONFIG_VAL(D, T, backlight.sysdev, STR); E_CONFIG_VAL(D, T, backlight.idle_dim, UCHAR); diff --git a/src/bin/e_config.h b/src/bin/e_config.h index 183585181..dc8889e84 100644 --- a/src/bin/e_config.h +++ b/src/bin/e_config.h @@ -369,6 +369,7 @@ struct _E_Config double dim; // GUI double transition; // GUI double timer; // GUI + double battery_timer; // GUI const char *sysdev; // GUI unsigned char idle_dim; // GUI E_Backlight_Mode mode; /* not saved, display-only */ diff --git a/src/bin/e_screensaver.c b/src/bin/e_screensaver.c index 6aa1142e6..ad21ecee2 100644 --- a/src/bin/e_screensaver.c +++ b/src/bin/e_screensaver.c @@ -71,13 +71,16 @@ e_screensaver_timeout_get(Eina_Bool use_idle) { if (e_config->backlight.idle_dim) { + double t2 = e_config->backlight.timer; + + if ((e_powersave_mode_get() > E_POWERSAVE_MODE_LOW) && + (e_config->backlight.battery_timer > 0.0)) + t2 = e_config->backlight.battery_timer; if (timeout > 0) { - if (e_config->backlight.timer < timeout) - timeout = e_config->backlight.timer; + if (t2 < timeout) timeout = t2; } - else - timeout = e_config->backlight.timer; + else timeout = t2; } } return timeout; @@ -568,8 +571,12 @@ e_screensaver_eval(Eina_Bool saver_on) if ((e_config->backlight.idle_dim) && (!use_special_instead_of_dim)) { - double t = e_config->screensaver_timeout - - e_config->backlight.timer; + double t2 = e_config->backlight.timer; + + if ((e_powersave_mode_get() > E_POWERSAVE_MODE_LOW) && + (e_config->backlight.battery_timer > 0.0)) + t2 = e_config->backlight.battery_timer; + double t = e_config->screensaver_timeout - t2; if (t < 1.0) t = 1.0; if (_screensaver_now) t = 1.0; diff --git a/src/modules/conf_display/e_int_config_dpms.c b/src/modules/conf_display/e_int_config_dpms.c index e520de6f1..b3a863816 100644 --- a/src/modules/conf_display/e_int_config_dpms.c +++ b/src/modules/conf_display/e_int_config_dpms.c @@ -14,6 +14,8 @@ struct _E_Config_Dialog_Data E_Config_Dialog *cfd; Evas_Object *backlight_slider_idle; + Evas_Object *backlight_battery_slider_idle; + Evas_Object *backlight_battery_label; Evas_Object *backlight_slider_fade; char *bl_dev; @@ -23,6 +25,7 @@ struct _E_Config_Dialog_Data double backlight_normal; double backlight_dim; double backlight_timeout; + double backlight_battery_timeout; double backlight_transition; int ask_presentation; @@ -68,6 +71,7 @@ _fill_data(E_Config_Dialog_Data *cfdata) cfdata->backlight_transition = e_config->backlight.transition; cfdata->enable_idle_dim = e_config->backlight.idle_dim; cfdata->backlight_timeout = e_config->backlight.timer; + cfdata->backlight_battery_timeout = e_config->backlight.battery_timer; cfdata->ask_presentation = e_config->screensaver_ask_presentation; cfdata->ask_presentation_timeout = e_config->screensaver_ask_presentation_timeout; } @@ -97,6 +101,7 @@ _apply_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata) e_config->backlight.dim = cfdata->backlight_dim / 100.0; e_config->backlight.transition = cfdata->backlight_transition; e_config->backlight.timer = lround(cfdata->backlight_timeout); + e_config->backlight.battery_timer = lround(cfdata->backlight_battery_timeout); e_config->backlight.idle_dim = cfdata->enable_idle_dim; e_config->screensaver_ask_presentation = cfdata->ask_presentation; e_config->screensaver_ask_presentation_timeout = cfdata->ask_presentation_timeout; @@ -125,12 +130,15 @@ _advanced_check_changed(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data * { // set state from saved config e_widget_disabled_set(cfdata->backlight_slider_idle, !cfdata->enable_idle_dim); + e_widget_disabled_set(cfdata->backlight_battery_slider_idle, !cfdata->enable_idle_dim); + e_widget_disabled_set(cfdata->backlight_battery_label, !cfdata->enable_idle_dim); e_widget_disabled_set(cfdata->backlight_slider_fade, !cfdata->enable_idle_dim); return (!EINA_DBL_EQ(e_config->backlight.normal * 100.0, cfdata->backlight_normal)) || (!EINA_DBL_EQ(e_config->backlight.dim * 100.0, cfdata->backlight_dim)) || (!EINA_DBL_EQ(e_config->backlight.transition, cfdata->backlight_transition)) || (!EINA_DBL_EQ(e_config->backlight.timer, cfdata->backlight_timeout)) || + (!EINA_DBL_EQ(e_config->backlight.battery_timer, cfdata->backlight_battery_timeout)) || (e_config->backlight.idle_dim != cfdata->enable_idle_dim) || (e_config->screensaver_ask_presentation != cfdata->ask_presentation) || (!EINA_DBL_EQ(e_config->screensaver_ask_presentation_timeout, cfdata->ask_presentation_timeout)); @@ -192,6 +200,15 @@ _advanced_create_widgets(E_Config_Dialog *cfd EINA_UNUSED, Evas *evas, E_Config_ cfdata->backlight_slider_idle = ob; e_widget_disabled_set(ob, !cfdata->enable_idle_dim); // set state from saved config e_widget_list_object_append(o, ob, 1, 1, 0.5); + ob = e_widget_label_add(evas, _("Fade Time on Battery")); + cfdata->backlight_battery_label = ob; + e_widget_disabled_set(ob, !cfdata->enable_idle_dim); // set state from saved config + e_widget_list_object_append(o, ob, 1, 1, 0.5); + ob = e_widget_slider_add(evas, 1, 0, _("%1.0f second(s)"), 0.0, 300.0, 1.0, 0, + &(cfdata->backlight_battery_timeout), NULL, 100); + cfdata->backlight_battery_slider_idle = ob; + e_widget_disabled_set(ob, !cfdata->enable_idle_dim); // set state from saved config + e_widget_list_object_append(o, ob, 1, 1, 0.5); ob = e_widget_label_add(evas, _("Fade Time")); e_widget_list_object_append(o, ob, 1, 1, 0.5);