diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index 007032eca..28939078a 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -3240,7 +3240,7 @@ _e_comp_fade_handle(E_Comp_Zone *cz, int out, double tim) { if (out == 1) { - if (e_backlight_exists()) + if ((e_backlight_exists()) && (!conf->nofade)) { e_backlight_update(); cz->bloff = EINA_TRUE; @@ -3250,7 +3250,7 @@ _e_comp_fade_handle(E_Comp_Zone *cz, int out, double tim) } else { - if (e_backlight_exists()) + if ((e_backlight_exists()) && (!conf->nofade)) { cz->bloff = EINA_FALSE; e_backlight_update(); @@ -3326,9 +3326,12 @@ _e_comp_screens_eval(E_Comp *c) evas_object_del(cz->over); if (cz->bloff) { - if (e_backlight_mode_get(cz->zone) != E_BACKLIGHT_MODE_NORMAL) - e_backlight_mode_set(cz->zone, E_BACKLIGHT_MODE_NORMAL); - e_backlight_level_set(cz->zone, e_config->backlight.normal, 0.0); + if (!conf->nofade) + { + if (e_backlight_mode_get(cz->zone) != E_BACKLIGHT_MODE_NORMAL) + e_backlight_mode_set(cz->zone, E_BACKLIGHT_MODE_NORMAL); + e_backlight_level_set(cz->zone, e_config->backlight.normal, 0.0); + } } if (cz->zone) cz->zone->comp_zone = NULL; free(cz); @@ -4321,11 +4324,14 @@ _e_comp_del(E_Comp *c) if (cz->zone) cz->zone->comp_zone = NULL; evas_object_del(cz->base); evas_object_del(cz->over); - if (cz->bloff) + if (!conf->nofade) { - if (e_backlight_mode_get(cz->zone) != E_BACKLIGHT_MODE_NORMAL) - e_backlight_mode_set(cz->zone, E_BACKLIGHT_MODE_NORMAL); - e_backlight_level_set(cz->zone, e_config->backlight.normal, 0.0); + if (cz->bloff) + { + if (e_backlight_mode_get(cz->zone) != E_BACKLIGHT_MODE_NORMAL) + e_backlight_mode_set(cz->zone, E_BACKLIGHT_MODE_NORMAL); + e_backlight_level_set(cz->zone, e_config->backlight.normal, 0.0); + } } free(cz); } @@ -4725,6 +4731,8 @@ _e_comp_cfg_init(void) E_CONFIGURE_OPTION_ADD(co, BOOL, nocomp_fs, conf, _("Don't composite fullscreen windows"), _("composite"), _("border")); co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; + E_CONFIGURE_OPTION_ADD(co, BOOL, nofade, conf, _("Don't fade backlight"), _("composite"), _("border")); + co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; E_CONFIGURE_OPTION_ADD(co, BOOL, send_flush, conf, _("Send flush when compositing windows"), _("composite"), _("border")); co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; E_CONFIGURE_OPTION_ADD(co, BOOL, send_dump, conf, _("Send dump when compositing windows"), _("composite"), _("border")); diff --git a/src/bin/e_comp_cfdata.c b/src/bin/e_comp_cfdata.c index 635bc0c04..99fffe678 100644 --- a/src/bin/e_comp_cfdata.c +++ b/src/bin/e_comp_cfdata.c @@ -52,6 +52,7 @@ e_comp_cfdata_edd_init(E_Config_DD **conf_edd, E_Config_DD **match_edd) E_CONFIG_VAL(D, T, send_flush, UCHAR); E_CONFIG_VAL(D, T, send_dump, UCHAR); E_CONFIG_VAL(D, T, nocomp_fs, UCHAR); + E_CONFIG_VAL(D, T, nofade, UCHAR); E_CONFIG_VAL(D, T, smooth_windows, UCHAR); E_CONFIG_VAL(D, T, first_draw_delay, DOUBLE); E_CONFIG_VAL(D, T, disable_screen_effects, UCHAR); @@ -102,6 +103,7 @@ e_comp_cfdata_config_new(void) cfg->send_flush = 1; // implement cfg->send_dump = 1; // implement cfg->nocomp_fs = 1; + cfg->nofade = 0; cfg->smooth_windows = 0; // 1 if gl, 0 if not cfg->first_draw_delay = 0.15; diff --git a/src/bin/e_comp_cfdata.h b/src/bin/e_comp_cfdata.h index 19c2f3362..79ee03853 100644 --- a/src/bin/e_comp_cfdata.h +++ b/src/bin/e_comp_cfdata.h @@ -27,6 +27,7 @@ struct _E_Comp_Config unsigned char send_dump; unsigned char nocomp_fs; unsigned char smooth_windows; + unsigned char nofade; double first_draw_delay; Eina_Bool disable_screen_effects; // the following options add the "/fast" suffix to the normal groups diff --git a/src/modules/conf_comp/e_mod_config.c b/src/modules/conf_comp/e_mod_config.c index 12e640aa3..6ab265ce0 100644 --- a/src/modules/conf_comp/e_mod_config.c +++ b/src/modules/conf_comp/e_mod_config.c @@ -36,6 +36,7 @@ struct _E_Config_Dialog_Data int send_flush; int send_dump; int nocomp_fs; + int nofade; int fps_show; int fps_corner; @@ -135,6 +136,7 @@ _create_data(E_Config_Dialog *cfd EINA_UNUSED) cfdata->send_flush = _comp_mod->conf->send_flush; cfdata->send_dump = _comp_mod->conf->send_dump; cfdata->nocomp_fs = _comp_mod->conf->nocomp_fs; + cfdata->nofade = _comp_mod->conf->nofade; cfdata->fps_show = _comp_mod->conf->fps_show; cfdata->fps_corner = _comp_mod->conf->fps_corner; @@ -313,6 +315,8 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data e_widget_list_object_append(ol, ob, 1, 1, 0.5); ob = e_widget_check_add(evas, _("Don't composite fullscreen windows"), &(cfdata->nocomp_fs)); e_widget_list_object_append(ol, ob, 1, 1, 0.5); + ob = e_widget_check_add(evas, _("Don't fade backlight"), &(cfdata->nofade)); + e_widget_list_object_append(ol, ob, 1, 1, 0.5); /* ob = e_widget_check_add(evas, _("Keep hidden windows"), &(cfdata->keep_unmapped)); e_widget_list_object_append(ol, ob, 1, 1, 0.5); @@ -428,6 +432,7 @@ _advanced_apply_data(E_Config_Dialog *cfd __UNUSED__, (cfdata->grab != _comp_mod->conf->grab) || (cfdata->keep_unmapped != _comp_mod->conf->keep_unmapped) || (cfdata->nocomp_fs != _comp_mod->conf->nocomp_fs) || + (cfdata->nofade != _comp_mod->conf->nofade) || (cfdata->shadow_style != _comp_mod->conf->shadow_style) || (cfdata->max_unmapped_pixels != _comp_mod->conf->max_unmapped_pixels) || (cfdata->max_unmapped_time != _comp_mod->conf->max_unmapped_time) || @@ -467,6 +472,7 @@ _advanced_apply_data(E_Config_Dialog *cfd __UNUSED__, _comp_mod->conf->grab = cfdata->grab; _comp_mod->conf->keep_unmapped = cfdata->keep_unmapped; _comp_mod->conf->nocomp_fs = cfdata->nocomp_fs; + _comp_mod->conf->nofade = cfdata->nofade; _comp_mod->conf->max_unmapped_pixels = cfdata->max_unmapped_pixels; _comp_mod->conf->max_unmapped_time = cfdata->max_unmapped_time; _comp_mod->conf->min_unmapped_time = cfdata->min_unmapped_time; @@ -548,7 +554,7 @@ _basic_create_widgets(E_Config_Dialog *cfd EINA_UNUSED, ob = e_widget_check_add(evas, _("Don't composite fullscreen windows"), &(cfdata->nocomp_fs)); e_widget_list_object_append(ol, ob, 1, 0, 0.5); - + cfdata->fast = (cfdata->fast_menus && cfdata->fast_menus && cfdata->fast_borders && cfdata->fast_popups && cfdata->fast_objects); cfdata->fast_ob = ob = e_widget_check_add(evas, _("Enable \"fast\" composite effects"), &(cfdata->fast));