E_CONFIG_VAL(D, T, version, INT);
E_CONFIG_VAL(D, T, shadow_style, STR);
E_CONFIG_VAL(D, T, engine, INT);
+ E_CONFIG_VAL(D, T, effect_file, STR);
//E_CONFIG_VAL(D, T, max_unmapped_pixels, INT);
E_CONFIG_VAL(D, T, max_unmapped_time, INT);
E_CONFIG_VAL(D, T, min_unmapped_time, INT);
cfg = E_NEW(E_Comp_Config, 1);
cfg->version = E_COMP_VERSION;
cfg->shadow_style = eina_stringshare_add("default");
+ cfg->effect_file = NULL;
cfg->engine = E_COMP_ENGINE_SW;
cfg->max_unmapped_pixels = 32 * 1024; // implement
cfg->max_unmapped_time = 10 * 3600; // implement
e_comp_cfdata_config_free(E_Comp_Config *cfg)
{
if (!cfg) return;
+ eina_stringshare_del(cfg->effect_file);
eina_stringshare_del(cfg->shadow_style);
E_FREE_LIST(cfg->match.popups, e_comp_cfdata_match_free);
{
char buf[4096];
Eina_Stringshare *grp;
+ E_Comp_Config *config;
+ Eina_Bool loaded = EINA_FALSE;
API_ENTRY;
if (!cw->shobj) return; //input window
if (!effect) effect = "none";
snprintf(buf, sizeof(buf), "e/comp/effects/%s", effect);
- edje_object_file_get(cw->effect_obj, NULL, &grp);
- if (!e_util_strcmp(buf, grp)) return;
- if (!e_theme_edje_object_set(cw->effect_obj, "base/theme/comp", buf))
+
+ config = e_comp_config_get();
+ if ((config) && (config->effect_file))
+ {
+ if (edje_object_file_set(cw->effect_obj, config->effect_file, buf))
+ loaded = EINA_TRUE;
+ }
+
+ if (!loaded)
{
- snprintf(buf, sizeof(buf), "e/comp/effects/auto/%s", effect);
+ edje_object_file_get(cw->effect_obj, NULL, &grp);
+ if (!e_util_strcmp(buf, grp)) return;
if (!e_theme_edje_object_set(cw->effect_obj, "base/theme/comp", buf))
- if (!e_theme_edje_object_set(cw->effect_obj, "base/theme/comp", "e/comp/effects/none")) return;
+ {
+ snprintf(buf, sizeof(buf), "e/comp/effects/auto/%s", effect);
+ if (!e_theme_edje_object_set(cw->effect_obj, "base/theme/comp", buf))
+ if (!e_theme_edje_object_set(cw->effect_obj, "base/theme/comp", "e/comp/effects/none")) return;
+ }
}
edje_object_part_swallow(cw->effect_obj, "e.swallow.content", cw->shobj);
if (cw->effect_clip)