From 70d65978c7472a0d8b02cdbd33ae4453b2db38c5 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 13 Jan 2014 13:40:59 -0500 Subject: [PATCH] add "Enable advanced compositing features" option this is what I'll be using to conceal various features in the future which should not be used without some understanding of what they do (OR FACE THE CONSEQUENCES) --- src/bin/e_comp_cfdata.c | 1 + src/bin/e_comp_cfdata.h | 1 + src/bin/e_int_config_comp.c | 22 ++++++++++++++++++++++ 3 files changed, 24 insertions(+) diff --git a/src/bin/e_comp_cfdata.c b/src/bin/e_comp_cfdata.c index 79b371791..d5eccccf3 100644 --- a/src/bin/e_comp_cfdata.c +++ b/src/bin/e_comp_cfdata.c @@ -53,6 +53,7 @@ e_comp_cfdata_edd_init(E_Config_DD **conf_edd, E_Config_DD **match_edd) 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); + E_CONFIG_VAL(D, T, enable_advanced_features, UCHAR); E_CONFIG_VAL(D, T, fast_popups, UCHAR); E_CONFIG_VAL(D, T, fast_borders, UCHAR); E_CONFIG_VAL(D, T, fast_menus, UCHAR); diff --git a/src/bin/e_comp_cfdata.h b/src/bin/e_comp_cfdata.h index fc8439207..b1620eb43 100644 --- a/src/bin/e_comp_cfdata.h +++ b/src/bin/e_comp_cfdata.h @@ -31,6 +31,7 @@ struct _E_Comp_Config unsigned char nofade; double first_draw_delay; Eina_Bool disable_screen_effects; + Eina_Bool enable_advanced_features; // the following options add the "/fast" suffix to the normal groups Eina_Bool fast_popups; Eina_Bool fast_borders; diff --git a/src/bin/e_int_config_comp.c b/src/bin/e_int_config_comp.c index 3aae82d43..812d61dc1 100644 --- a/src/bin/e_int_config_comp.c +++ b/src/bin/e_int_config_comp.c @@ -40,6 +40,7 @@ struct _E_Config_Dialog_Data int fps_average_range; double first_draw_delay; int disable_screen_effects; + int enable_advanced_features; // the following options add the "/fast" suffix to the normal groups int fast_popups; int fast_borders; @@ -112,6 +113,7 @@ _create_data(E_Config_Dialog *cfd EINA_UNUSED) cfdata->match.disable_menus = conf->match.disable_menus; cfdata->match.disable_objects = conf->match.disable_objects; cfdata->disable_screen_effects = conf->disable_screen_effects; + cfdata->enable_advanced_features = conf->enable_advanced_features; cfdata->indirect = conf->indirect; cfdata->texture_from_pixmap = conf->texture_from_pixmap; @@ -143,6 +145,17 @@ _create_data(E_Config_Dialog *cfd EINA_UNUSED) return cfdata; } +static void +_advanced_features_changed(E_Comp_Config *conf) +{ + conf->enable_advanced_features = !conf->enable_advanced_features; + if (conf->enable_advanced_features) + e_util_dialog_internal(_("WARNING"), + _("This option WILL break your desktop if you don't know what you're doing.
" + "Do not file bugs about anything that occurs with this option enabled.
" + "You have been warned.")); +} + static void _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) @@ -337,6 +350,10 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data ob = e_widget_slider_add(evas, 1, 0, _("%1.2f Seconds"), 0.01, 0.5, 0.01, 0, &(cfdata->first_draw_delay), NULL, 150); e_widget_framelist_object_append(of, ob); e_widget_list_object_append(ol, of, 1, 1, 0.5); + of = e_widget_framelist_add(evas, _("DANGEROUS"), 0); + ob = e_widget_check_add(evas, _("Enable advanced compositing features"), &(cfdata->enable_advanced_features)); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(ol, of, 1, 1, 0.5); e_widget_toolbook_page_append(otb, NULL, _("Misc"), ol, 0, 0, 0, 0, 0.5, 0.0); /////////////////////////////////////////// @@ -445,6 +462,7 @@ _advanced_apply_data(E_Config_Dialog *cfd __UNUSED__, (conf->match.disable_menus != cfdata->match.disable_menus) || (conf->match.disable_objects != cfdata->match.disable_objects) || (conf->disable_screen_effects != cfdata->disable_screen_effects) || + (conf->enable_advanced_features != cfdata->enable_advanced_features) || (conf->fast_popups != cfdata->fast_popups) || (conf->fast_borders != cfdata->fast_borders) || (conf->fast_overrides != cfdata->fast_overrides) || @@ -463,6 +481,8 @@ _advanced_apply_data(E_Config_Dialog *cfd __UNUSED__, conf->match.disable_menus = cfdata->match.disable_menus; conf->match.disable_objects = cfdata->match.disable_objects; conf->disable_screen_effects = cfdata->disable_screen_effects; + if (conf->enable_advanced_features != cfdata->enable_advanced_features) + _advanced_features_changed(conf); conf->lock_fps = cfdata->lock_fps; conf->smooth_windows = cfdata->smooth_windows; conf->grab = cfdata->grab; @@ -661,6 +681,8 @@ _basic_apply_data(E_Config_Dialog *cfd __UNUSED__, conf->max_unmapped_pixels = cfdata->max_unmapped_pixels; conf->max_unmapped_time = cfdata->max_unmapped_time; conf->min_unmapped_time = cfdata->min_unmapped_time; + if (conf->enable_advanced_features != cfdata->enable_advanced_features) + _advanced_features_changed(conf); conf->send_flush = cfdata->send_flush; conf->send_dump = cfdata->send_dump; conf->fps_show = cfdata->fps_show;