backlight - fix dimming if normal level less than dim level
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Tue, 22 Oct 2013 10:26:59 +0000 (11:26 +0100)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Tue, 22 Oct 2013 10:26:59 +0000 (11:26 +0100)
if dim level is set to 20% but normal level has been moved to 10%...
when we dim dont RAISE bl level to 20% - do nothing if dim > normal.

src/bin/e_backlight.c

index 4dfb894cc50482000e876299acf7d1ee1ff87833..aeaf1037699f37bdd495af0d6da42b691e6d650e 100644 (file)
@@ -241,8 +241,11 @@ e_backlight_level_get(E_Zone *zone __UNUSED__)
 EAPI void
 e_backlight_mode_set(E_Zone *zone, E_Backlight_Mode mode)
 {
+   E_Backlight_Mode pmode;
+   
    // zone == NULL == everything
    if (e_config->backlight.mode == mode) return;
+   pmode = e_config->backlight.mode;
    e_config->backlight.mode = mode;
    if (e_config->backlight.mode == E_BACKLIGHT_MODE_NORMAL)
      {
@@ -254,7 +257,10 @@ e_backlight_mode_set(E_Zone *zone, E_Backlight_Mode mode)
      }
    else if (e_config->backlight.mode == E_BACKLIGHT_MODE_DIM)
      {
-        e_backlight_level_set(zone, e_config->backlight.dim, -1.0);
+        if ((pmode != E_BACKLIGHT_MODE_NORMAL) ||
+            ((pmode == E_BACKLIGHT_MODE_NORMAL) &&
+             (e_config->backlight.normal > e_config->backlight.dim)))
+          e_backlight_level_set(zone, e_config->backlight.dim, -1.0);
      }
    else if (e_config->backlight.mode == E_BACKLIGHT_MODE_MAX)
      e_backlight_level_set(zone, 1.0, -1.0);