add options (conf2 only for the next few minutes) and functionality to enable "fast" comp effects in theme
SVN revision: 82631
This commit is contained in:
parent
34aab4c595
commit
71003dbeac
|
@ -4,6 +4,7 @@
|
||||||
* added option to disable comp effects on screen
|
* added option to disable comp effects on screen
|
||||||
* fixed bug where backlight settings would try to update dummy backlight devices
|
* fixed bug where backlight settings would try to update dummy backlight devices
|
||||||
* added focus-out color class and functionality to default theme
|
* added focus-out color class and functionality to default theme
|
||||||
|
* added options and functionality for "fast" composite effects
|
||||||
|
|
||||||
2013-01-10 Carsten Haitzler
|
2013-01-10 Carsten Haitzler
|
||||||
|
|
||||||
|
|
1
NEWS
1
NEWS
|
@ -25,6 +25,7 @@ Additions:
|
||||||
* comp settings now uses the "e_comp" config domain
|
* comp settings now uses the "e_comp" config domain
|
||||||
* added options to disable comp effects on types of windows
|
* added options to disable comp effects on types of windows
|
||||||
* added option to disable comp effects on screen
|
* added option to disable comp effects on screen
|
||||||
|
* added options and functionality for "fast" composite effects
|
||||||
|
|
||||||
Changes:
|
Changes:
|
||||||
Modules:
|
Modules:
|
||||||
|
|
|
@ -323,6 +323,7 @@ group { name: "e/comp/default";
|
||||||
target: "shadow";
|
target: "shadow";
|
||||||
}
|
}
|
||||||
program {
|
program {
|
||||||
|
name: "visible_on";
|
||||||
signal: "e,state,visible,on"; source: "e";
|
signal: "e,state,visible,on"; source: "e";
|
||||||
action: STATE_SET "visible" 0.0;
|
action: STATE_SET "visible" 0.0;
|
||||||
transition: DECELERATE 0.15;
|
transition: DECELERATE 0.15;
|
||||||
|
@ -334,6 +335,7 @@ group { name: "e/comp/default";
|
||||||
action: SIGNAL_EMIT "e,action,show,done" "e";
|
action: SIGNAL_EMIT "e,action,show,done" "e";
|
||||||
}
|
}
|
||||||
program {
|
program {
|
||||||
|
name: "visible_off";
|
||||||
signal: "e,state,visible,off"; source: "e";
|
signal: "e,state,visible,off"; source: "e";
|
||||||
action: STATE_SET "default" 0.0;
|
action: STATE_SET "default" 0.0;
|
||||||
transition: DECELERATE 0.30;
|
transition: DECELERATE 0.30;
|
||||||
|
@ -345,6 +347,7 @@ group { name: "e/comp/default";
|
||||||
action: SIGNAL_EMIT "e,action,hide,done" "e";
|
action: SIGNAL_EMIT "e,action,hide,done" "e";
|
||||||
}
|
}
|
||||||
program {
|
program {
|
||||||
|
name: "focus_on";
|
||||||
signal: "e,state,focus,on"; source: "e";
|
signal: "e,state,focus,on"; source: "e";
|
||||||
action: STATE_SET "focused" 0.0;
|
action: STATE_SET "focused" 0.0;
|
||||||
transition: SINUSOIDAL 0.1;
|
transition: SINUSOIDAL 0.1;
|
||||||
|
@ -358,6 +361,7 @@ group { name: "e/comp/default";
|
||||||
target: "glow";
|
target: "glow";
|
||||||
}
|
}
|
||||||
program {
|
program {
|
||||||
|
name: "focus_off";
|
||||||
signal: "e,state,focus,off"; source: "e";
|
signal: "e,state,focus,off"; source: "e";
|
||||||
action: STATE_SET "default" 0.0;
|
action: STATE_SET "default" 0.0;
|
||||||
transition: SINUSOIDAL 0.1;
|
transition: SINUSOIDAL 0.1;
|
||||||
|
@ -385,6 +389,38 @@ group { name: "e/comp/default";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
group { name: "e/comp/default/fast";
|
||||||
|
alias: "e/comp/popup/fast";
|
||||||
|
inherit: "e/comp/default";
|
||||||
|
programs {
|
||||||
|
program {
|
||||||
|
name: "visible_on";
|
||||||
|
transition: DECELERATE 0;
|
||||||
|
}
|
||||||
|
program {
|
||||||
|
name: "visible_off";
|
||||||
|
transition: DECELERATE 0;
|
||||||
|
}
|
||||||
|
program {
|
||||||
|
name: "focus_on";
|
||||||
|
transition: SINUSOIDAL 0.1;
|
||||||
|
target: "glow";
|
||||||
|
after: "focus2";
|
||||||
|
}
|
||||||
|
program {
|
||||||
|
name: "focus_on2";
|
||||||
|
signal: "e,state,focus,on"; source: "e";
|
||||||
|
action: STATE_SET "focused" 0.0;
|
||||||
|
target: "focus-clipper";
|
||||||
|
}
|
||||||
|
program {
|
||||||
|
name: "focus_off";
|
||||||
|
transition: SINUSOIDAL 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
group { name: "e/comp/none";
|
group { name: "e/comp/none";
|
||||||
parts {
|
parts {
|
||||||
part { name: "e.swallow.content"; type: SWALLOW;
|
part { name: "e.swallow.content"; type: SWALLOW;
|
||||||
|
@ -416,6 +452,18 @@ group { name: "e/comp/still";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
group { name: "e/comp/still/fast";
|
||||||
|
inherit: "e/comp/default/fast";
|
||||||
|
parts {
|
||||||
|
part { name: "shower";
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.relative: 0.0 0.0;
|
||||||
|
rel2.relative: 1.0 1.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
group { name: "e/comp/menu";
|
group { name: "e/comp/menu";
|
||||||
inherit: "e/comp/default";
|
inherit: "e/comp/default";
|
||||||
parts {
|
parts {
|
||||||
|
@ -428,6 +476,18 @@ group { name: "e/comp/menu";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
group { name: "e/comp/menu/fast";
|
||||||
|
inherit: "e/comp/default/fast";
|
||||||
|
parts {
|
||||||
|
part { name: "shower";
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.relative: 0.05 0.0;
|
||||||
|
rel2.relative: 0.95 0.9;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
group { name: "e/comp/everything";
|
group { name: "e/comp/everything";
|
||||||
inherit: "e/comp/default";
|
inherit: "e/comp/default";
|
||||||
parts {
|
parts {
|
||||||
|
@ -440,6 +500,18 @@ group { name: "e/comp/everything";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
group { name: "e/comp/everything";
|
||||||
|
inherit: "e/comp/default/fast";
|
||||||
|
parts {
|
||||||
|
part { name: "shower";
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
rel1.relative: -0.3 -0.3;
|
||||||
|
rel2.relative: 1.3 1.3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
group { name: "e/comp/fullscreen";
|
group { name: "e/comp/fullscreen";
|
||||||
images.image: "win_shadow.png" COMP;
|
images.image: "win_shadow.png" COMP;
|
||||||
images.image: "screen_circular_shadow.png" COMP;
|
images.image: "screen_circular_shadow.png" COMP;
|
||||||
|
|
|
@ -1616,7 +1616,7 @@ _e_comp_win_shadow_setup(E_Comp_Win *cw)
|
||||||
char buf[4096];
|
char buf[4096];
|
||||||
Eina_List *list = NULL, *l;
|
Eina_List *list = NULL, *l;
|
||||||
E_Comp_Match *m;
|
E_Comp_Match *m;
|
||||||
Eina_Bool focus = EINA_FALSE, urgent = EINA_FALSE, skip = EINA_FALSE;
|
Eina_Bool focus = EINA_FALSE, urgent = EINA_FALSE, skip = EINA_FALSE, fast = EINA_FALSE;
|
||||||
const char *title = NULL, *name = NULL, *clas = NULL, *role = NULL;
|
const char *title = NULL, *name = NULL, *clas = NULL, *role = NULL;
|
||||||
Ecore_X_Window_Type primary_type = ECORE_X_WINDOW_TYPE_UNKNOWN;
|
Ecore_X_Window_Type primary_type = ECORE_X_WINDOW_TYPE_UNKNOWN;
|
||||||
|
|
||||||
|
@ -1635,6 +1635,7 @@ _e_comp_win_shadow_setup(E_Comp_Win *cw)
|
||||||
role = cw->bd->client.icccm.window_role;
|
role = cw->bd->client.icccm.window_role;
|
||||||
primary_type = cw->bd->client.netwm.type;
|
primary_type = cw->bd->client.netwm.type;
|
||||||
skip = (conf->match.disable_borders);
|
skip = (conf->match.disable_borders);
|
||||||
|
fast = conf->fast_borders;
|
||||||
}
|
}
|
||||||
else if (cw->pop)
|
else if (cw->pop)
|
||||||
{
|
{
|
||||||
|
@ -1644,12 +1645,14 @@ _e_comp_win_shadow_setup(E_Comp_Win *cw)
|
||||||
list = conf->match.popups;
|
list = conf->match.popups;
|
||||||
name = cw->pop->name;
|
name = cw->pop->name;
|
||||||
skip = (conf->match.disable_popups);
|
skip = (conf->match.disable_popups);
|
||||||
|
fast = conf->fast_popups;
|
||||||
}
|
}
|
||||||
else if (cw->menu)
|
else if (cw->menu)
|
||||||
{
|
{
|
||||||
// FIXME: e has no way to tell e menus apart... need naming
|
// FIXME: e has no way to tell e menus apart... need naming
|
||||||
list = conf->match.menus;
|
list = conf->match.menus;
|
||||||
skip = (conf->match.disable_menus);
|
skip = (conf->match.disable_menus);
|
||||||
|
fast = conf->fast_menus;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1660,6 +1663,7 @@ _e_comp_win_shadow_setup(E_Comp_Win *cw)
|
||||||
role = cw->role;
|
role = cw->role;
|
||||||
primary_type = cw->primary_type;
|
primary_type = cw->primary_type;
|
||||||
skip = (conf->match.disable_overrides);
|
skip = (conf->match.disable_overrides);
|
||||||
|
fast = conf->fast_overrides;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!skip)
|
if (!skip)
|
||||||
|
@ -1766,10 +1770,16 @@ _e_comp_win_shadow_setup(E_Comp_Win *cw)
|
||||||
urgent = m->urgent;
|
urgent = m->urgent;
|
||||||
if (m->shadow_style)
|
if (m->shadow_style)
|
||||||
{
|
{
|
||||||
snprintf(buf, sizeof(buf), "e/comp/%s",
|
if (fast)
|
||||||
m->shadow_style);
|
{
|
||||||
ok = e_theme_edje_object_set(cw->shobj, "base/theme/borders",
|
snprintf(buf, sizeof(buf), "e/comp/%s/fast", m->shadow_style);
|
||||||
buf);
|
ok = e_theme_edje_object_set(cw->shobj, "base/theme/borders", buf);
|
||||||
|
}
|
||||||
|
if (!ok)
|
||||||
|
{
|
||||||
|
snprintf(buf, sizeof(buf), "e/comp/%s", m->shadow_style);
|
||||||
|
ok = e_theme_edje_object_set(cw->shobj, "base/theme/borders", buf);
|
||||||
|
}
|
||||||
if (ok) break;
|
if (ok) break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1783,14 +1793,24 @@ _e_comp_win_shadow_setup(E_Comp_Win *cw)
|
||||||
if (ok) break;
|
if (ok) break;
|
||||||
if (conf->shadow_style)
|
if (conf->shadow_style)
|
||||||
{
|
{
|
||||||
snprintf(buf, sizeof(buf), "e/comp/%s",
|
if (fast)
|
||||||
conf->shadow_style);
|
{
|
||||||
ok = e_theme_edje_object_set(cw->shobj, "base/theme/borders",
|
snprintf(buf, sizeof(buf), "e/comp/%s/fast", conf->shadow_style);
|
||||||
buf);
|
ok = e_theme_edje_object_set(cw->shobj, "base/theme/borders", buf);
|
||||||
|
}
|
||||||
|
if (!ok)
|
||||||
|
{
|
||||||
|
snprintf(buf, sizeof(buf), "e/comp/%s", conf->shadow_style);
|
||||||
|
ok = e_theme_edje_object_set(cw->shobj, "base/theme/borders", buf);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!ok)
|
if (!ok)
|
||||||
ok = e_theme_edje_object_set(cw->shobj, "base/theme/borders",
|
{
|
||||||
"e/comp/default");
|
if (fast)
|
||||||
|
ok = e_theme_edje_object_set(cw->shobj, "base/theme/borders", "e/comp/default/fast");
|
||||||
|
if (!ok)
|
||||||
|
ok = e_theme_edje_object_set(cw->shobj, "base/theme/borders", "e/comp/default");
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
edje_object_part_swallow(cw->shobj, "e.swallow.content", cw->obj);
|
edje_object_part_swallow(cw->shobj, "e.swallow.content", cw->obj);
|
||||||
|
@ -4221,6 +4241,20 @@ _e_comp_cfg_init(void)
|
||||||
E_CONFIGURE_OPTION_ADD(co, BOOL, vsync, conf, _("Tear-free compositing (VSYNC)"), _("composite"), _("border"));
|
E_CONFIGURE_OPTION_ADD(co, BOOL, vsync, conf, _("Tear-free compositing (VSYNC)"), _("composite"), _("border"));
|
||||||
co->requires_restart = 1;
|
co->requires_restart = 1;
|
||||||
cfg_opts = eina_inlist_append(cfg_opts, EINA_INLIST_GET(co));
|
cfg_opts = eina_inlist_append(cfg_opts, EINA_INLIST_GET(co));
|
||||||
|
|
||||||
|
E_CONFIGURE_OPTION_ADD(co, BOOL, fast_borders, conf, _("Use fast composite effects for windows"), _("composite"), _("border"), _("theme"), _("animate"));
|
||||||
|
co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset;
|
||||||
|
cfg_opts = eina_inlist_append(cfg_opts, EINA_INLIST_GET(co));
|
||||||
|
E_CONFIGURE_OPTION_ADD(co, BOOL, fast_menus, conf, _("Use fast composite effects for menus"), _("composite"), _("menu"), _("theme"), _("animate"));
|
||||||
|
co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset;
|
||||||
|
cfg_opts = eina_inlist_append(cfg_opts, EINA_INLIST_GET(co));
|
||||||
|
E_CONFIGURE_OPTION_ADD(co, BOOL, fast_popups, conf, _("Use fast composite effects for popups"), _("composite"), _("popup"), _("theme"), _("animate"));
|
||||||
|
co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset;
|
||||||
|
cfg_opts = eina_inlist_append(cfg_opts, EINA_INLIST_GET(co));
|
||||||
|
E_CONFIGURE_OPTION_ADD(co, BOOL, fast_overrides, conf, _("Use fast composite effects for override-redirect windows (tooltips and such)"), _("composite"), _("theme"), _("animate"));
|
||||||
|
co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset;
|
||||||
|
cfg_opts = eina_inlist_append(cfg_opts, EINA_INLIST_GET(co));
|
||||||
|
|
||||||
E_CONFIGURE_OPTION_ADD(co, BOOL, match.disable_borders, conf, _("Disable composite effects for windows"), _("composite"), _("border"), _("theme"), _("animate"));
|
E_CONFIGURE_OPTION_ADD(co, BOOL, match.disable_borders, conf, _("Disable composite effects for windows"), _("composite"), _("border"), _("theme"), _("animate"));
|
||||||
co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset;
|
co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset;
|
||||||
cfg_opts = eina_inlist_append(cfg_opts, EINA_INLIST_GET(co));
|
cfg_opts = eina_inlist_append(cfg_opts, EINA_INLIST_GET(co));
|
||||||
|
|
|
@ -54,6 +54,10 @@ 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, smooth_windows, UCHAR);
|
||||||
E_CONFIG_VAL(D, T, first_draw_delay, DOUBLE);
|
E_CONFIG_VAL(D, T, first_draw_delay, DOUBLE);
|
||||||
E_CONFIG_VAL(D, T, disable_screen_effects, UCHAR);
|
E_CONFIG_VAL(D, T, disable_screen_effects, 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);
|
||||||
|
E_CONFIG_VAL(D, T, fast_overrides, UCHAR);
|
||||||
E_CONFIG_VAL(D, T, match.disable_popups, UCHAR);
|
E_CONFIG_VAL(D, T, match.disable_popups, UCHAR);
|
||||||
E_CONFIG_VAL(D, T, match.disable_borders, UCHAR);
|
E_CONFIG_VAL(D, T, match.disable_borders, UCHAR);
|
||||||
E_CONFIG_VAL(D, T, match.disable_overrides, UCHAR);
|
E_CONFIG_VAL(D, T, match.disable_overrides, UCHAR);
|
||||||
|
|
|
@ -29,6 +29,11 @@ struct _E_Comp_Config
|
||||||
unsigned char smooth_windows;
|
unsigned char smooth_windows;
|
||||||
double first_draw_delay;
|
double first_draw_delay;
|
||||||
Eina_Bool disable_screen_effects;
|
Eina_Bool disable_screen_effects;
|
||||||
|
// the following options add the "/fast" suffix to the normal groups
|
||||||
|
Eina_Bool fast_popups;
|
||||||
|
Eina_Bool fast_borders;
|
||||||
|
Eina_Bool fast_menus;
|
||||||
|
Eina_Bool fast_overrides;
|
||||||
|
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue