discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=70d65978c7472a0d8b02cdbd33ae4453b2db38c5

commit 70d65978c7472a0d8b02cdbd33ae4453b2db38c5
Author: Mike Blumenkrantz <zm...@samsung.com>
Date:   Mon Jan 13 13:40:59 2014 -0500

    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 79b3717..d5ecccc 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 fc84392..b1620eb 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 3aae82d..812d61d 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;
@@ -144,6 +146,17 @@ _create_data(E_Config_Dialog *cfd EINA_UNUSED)
 }
 
 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.<br>"
+                              "Do not file bugs about anything that occurs 
with this option enabled.<br>"
+                              "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;

-- 


Reply via email to