HUUUUUUGE spankies to the person who wrote the backlight settings config. massive...
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Mon, 12 Nov 2012 14:09:04 +0000 (14:09 +0000)
committerMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Mon, 12 Nov 2012 14:09:04 +0000 (14:09 +0000)
there was a callback set on the dpms timer slider which would, whenever the slider was moved and on creating the slider, set the backlight+screensaver timers to zero IN THE E CONFIG ITSELF. this means anyone who ever opened the dialog with dpms enabled had their backlight+screensaver config broken.
cannot emphasize how bad this is.
ticket #1765

SVN revision: 79163

src/modules/conf_display/e_int_config_dpms.c

index a1a5170a46c5ae59bed19ad3acf5dfc4430212f8..1eada2fb3ce681d3297cbf8c2b0a5bb08e3fb750 100644 (file)
@@ -6,7 +6,6 @@ static int  _advanced_check_changed(E_Config_Dialog *cfd, E_Config_Dialog_Data *
 static int  _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
 static Evas_Object  *_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas,
                                              E_Config_Dialog_Data *cfdata);
-static void _cb_backlight_slider_change(void *data, Evas_Object *obj);
 
 struct _E_Config_Dialog_Data
 {
@@ -86,7 +85,16 @@ _apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
 
    e_backlight_mode_set(NULL, E_BACKLIGHT_MODE_NORMAL);
    e_backlight_level_set(NULL, e_config->backlight.normal, -1.0);
-   
+   if (cfdata->backlight_timeout < e_config->screensaver_timeout)
+     {
+        e_config->screensaver_timeout = cfdata->backlight_timeout;
+        e_config->dpms_standby_timeout = e_config->screensaver_timeout;
+        e_config->dpms_suspend_timeout = e_config->screensaver_timeout;
+        e_config->dpms_off_timeout = e_config->screensaver_timeout;
+     }
+   e_screensaver_update();
+   e_dpms_update();
+   e_backlight_update();
    e_config_save_queue();
    return 1;
 }
@@ -151,7 +159,6 @@ _advanced_create_widgets(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_D
    e_widget_disabled_set(ob, cfdata->enable_idle_dim); // set state from saved config
    ob = e_widget_slider_add(evas, 1, 0, _("%1.0f minutes"), 0.5, 90.0, 1.0, 0,
                            &(cfdata->backlight_timeout), NULL, 100);
-   e_widget_on_change_hook_set(ob, _cb_backlight_slider_change, cfdata);
    cfdata->backlight_slider = 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);
@@ -186,22 +193,3 @@ _advanced_create_widgets(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_D
      }
    return o;
 }
-
-/* general functionality/callbacks */
-static void
-_cb_backlight_slider_change(void *data, Evas_Object *obj __UNUSED__)
-{
-   E_Config_Dialog_Data *cfdata = data;
-
-   /* off-slider */
-   if (cfdata->backlight_timeout < e_config->screensaver_timeout)
-     {
-        e_config->screensaver_timeout = cfdata->backlight_timeout;
-        e_config->dpms_standby_timeout = e_config->screensaver_timeout;
-        e_config->dpms_suspend_timeout = e_config->screensaver_timeout;
-        e_config->dpms_off_timeout = e_config->screensaver_timeout;
-     }
-   e_screensaver_update();
-   e_dpms_update();
-   e_backlight_update();
-}