raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=1783c328394ffe1743522cab4d904a226ac7574c

commit 1783c328394ffe1743522cab4d904a226ac7574c
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Wed Sep 18 18:56:42 2019 +0100

    backlight - add battery timeout in addition to regular dim timeout
    
    this allows for a shorter timeout when on battery vs when on ac for
    backlight dimming. this is actually important so when on ac dimming
    can interrupt minimally bur when on battery it can be much more
    aggressive.
---
 data/config/default/e.src                    |  5 +++--
 data/config/standard/e.src                   |  5 +++--
 data/config/tiling/e.src                     |  3 +++
 src/bin/e_config.c                           |  1 +
 src/bin/e_config.h                           |  1 +
 src/bin/e_screensaver.c                      | 19 +++++++++++++------
 src/modules/conf_display/e_int_config_dpms.c | 17 +++++++++++++++++
 7 files changed, 41 insertions(+), 10 deletions(-)

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);

-- 


Reply via email to