HUUUUUUGE spankies to the person who wrote the backlight settings config. massive. humongous. colossal. cannot-adequately-describe-size-because-it-is-too-large sized spankies.

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
This commit is contained in:
Mike Blumenkrantz 2012-11-12 14:09:04 +00:00
parent 3234fbd9e8
commit fa8b81e403
1 changed files with 10 additions and 22 deletions

View 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();
}