add "Enable advanced compositing features" option
authorMike Blumenkrantz <zmike@samsung.com>
Mon, 13 Jan 2014 18:40:59 +0000 (13:40 -0500)
committerMike Blumenkrantz <zmike@samsung.com>
Wed, 15 Jan 2014 01:29:00 +0000 (20:29 -0500)
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
src/bin/e_comp_cfdata.h
src/bin/e_int_config_comp.c

index 79b3717..d5ecccc 100644 (file)
@@ -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);
index fc84392..b1620eb 100644 (file)
@@ -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;
index 3aae82d..812d61d 100644 (file)
@@ -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;