another new comp option for disabling screen effects (fading on blank)

SVN revision: 82623
This commit is contained in:
Mike Blumenkrantz 2013-01-11 09:21:39 +00:00
parent d94ca3aae7
commit 70e40291f6
7 changed files with 91 additions and 6 deletions

View File

@ -1,6 +1,7 @@
2013-01-11 Mike Blumenkrantz
* e_manager_comp_set() is no longer accessible by modules
* added option to disable comp effects on screen
2013-01-10 Carsten Haitzler

1
NEWS
View File

@ -24,6 +24,7 @@ Additions:
* Added option for disabling pointer warping when performing directional focus changes using winlist
* comp settings now uses the "e_comp" config domain
* added options to disable comp effects on types of windows
* added option to disable comp effects on screen
Changes:
Modules:

View File

@ -81,30 +81,35 @@ group { name: "e/modules/comp/screen/overlay/default";
}
programs {
program {
name: "screensaver_on";
signal: "e,state,screensaver,on"; source: "e";
action: STATE_SET "visible" 0.0;
transition: ACCELERATE 3.0 CURRENT;
target: "blanker";
}
program {
name: "screensaver_on2";
signal: "e,state,screensaver,on"; source: "e";
action: STATE_SET "visible" 0.0;
transition: DECELERATE 1.5 CURRENT;
target: "shadow";
}
program {
name: "screensaver_off";
signal: "e,state,screensaver,off"; source: "e";
action: STATE_SET "default" 0.0;
transition: ACCELERATE 0.5 CURRENT;
target: "blanker";
}
program {
name: "screensaver_off2";
signal: "e,state,screensaver,off"; source: "e";
action: STATE_SET "default" 0.0;
transition: ACCELERATE 0.25 CURRENT;
target: "shadow";
}
program {
name: "suspend";
signal: "e,state,sys,suspend"; source: "e";
action: STATE_SET "visible" 0.0;
transition: ACCELERATE 0.5 CURRENT;
@ -115,6 +120,7 @@ group { name: "e/modules/comp/screen/overlay/default";
action: SIGNAL_EMIT "e,state,sys,suspend,done" "e";
}
program {
name: "hibernate";
signal: "e,state,sys,hibernate"; source: "e";
action: STATE_SET "visible" 0.0;
transition: ACCELERATE 0.5 CURRENT;
@ -125,12 +131,14 @@ group { name: "e/modules/comp/screen/overlay/default";
action: SIGNAL_EMIT "e,state,sys,hibernate,done" "e";
}
program {
name: "resume";
signal: "e,state,sys,resume"; source: "e";
action: STATE_SET "default" 0.0;
transition: DECELERATE 1.0 CURRENT;
target: "suspender";
}
program {
name: "reboot";
signal: "e,state,sys,reboot"; source: "e";
action: STATE_SET "visible" 0.0;
transition: ACCELERATE 0.5 CURRENT;
@ -141,6 +149,7 @@ group { name: "e/modules/comp/screen/overlay/default";
action: SIGNAL_EMIT "e,state,sys,reboot,done" "e";
}
program {
name: "halt";
signal: "e,state,sys,halt"; source: "e";
action: STATE_SET "visible" 0.0;
transition: ACCELERATE 0.5 CURRENT;
@ -151,6 +160,7 @@ group { name: "e/modules/comp/screen/overlay/default";
action: SIGNAL_EMIT "e,state,sys,halt,done" "e";
}
program {
name: "logout";
signal: "e,state,sys,logout"; source: "e";
action: STATE_SET "visible" 0.0;
transition: ACCELERATE 0.5 CURRENT;
@ -163,6 +173,53 @@ group { name: "e/modules/comp/screen/overlay/default";
}
}
group { name: "e/modules/comp/screen/overlay/noeffects";
inherit: "e/modules/comp/screen/overlay/default";
programs {
program {
name: "screensaver_on";
transition: ACCELERATE 0 CURRENT;
}
program {
name: "screensaver_on2";
transition: DECELERATE 0 CURRENT;
}
program {
name: "screensaver_off";
transition: ACCELERATE 0 CURRENT;
}
program {
name: "screensaver_off2";
transition: ACCELERATE 0 CURRENT;
}
program {
name: "suspend";
transition: ACCELERATE 0 CURRENT;
}
program {
name: "hibernate";
transition: ACCELERATE 0 CURRENT;
}
program {
name: "resume";
transition: DECELERATE 1 CURRENT;
}
program {
name: "reboot";
transition: ACCELERATE 0 CURRENT;
}
program {
name: "halt";
transition: ACCELERATE 0 CURRENT;
}
program {
name: "logout";
transition: ACCELERATE 0 CURRENT;
}
}
}
group { name: "e/comp/default";
alias: "e/comp/popup";
images.image: "win_shadow.png" COMP;

View File

@ -3131,7 +3131,18 @@ static void
_e_comp_zone_fill(E_Comp *c, E_Comp_Zone *cz)
{
Evas_Object *o;
const char *const styles[] =
{
"e/modules/comp/screen/overlay/default",
"e/modules/comp/screen/overlay/noeffects"
};
if (cz->over)
{
e_theme_edje_object_set(cz->over, "base/theme/modules/comp",
styles[conf->disable_screen_effects]);
return;
}
cz->base = o = edje_object_add(c->evas);
e_theme_edje_object_set(o, "base/theme/modules/comp",
"e/modules/comp/screen/base/default");
@ -3142,7 +3153,7 @@ _e_comp_zone_fill(E_Comp *c, E_Comp_Zone *cz)
cz->over = o = edje_object_add(c->evas);
e_theme_edje_object_set(o, "base/theme/modules/comp",
"e/modules/comp/screen/overlay/default");
styles[conf->disable_screen_effects]);
evas_object_move(o, cz->zone->x, cz->zone->y);
evas_object_resize(o, cz->zone->w, cz->zone->h);
evas_object_raise(o);
@ -4105,6 +4116,10 @@ _e_comp_cfg_init(void)
E_CONFIGURE_OPTION_ADD(co, BOOL, match.disable_overrides, conf, _("Disable 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_overrides, conf, _("Disable composite effects for the screen"), _("composite"), _("theme"), _("animate"), _("screen"));
E_CONFIGURE_OPTION_HELP(co, _("This option disables composite effects from themes, such as animating the screen fade when blanking"));
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, smooth_windows, conf, _("Smooth scaling of composited window content"), _("composite"), _("border"));
co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset;
cfg_opts = eina_inlist_append(cfg_opts, EINA_INLIST_GET(co));
@ -4276,15 +4291,18 @@ e_comp_config_get(void)
EAPI void
e_comp_shadows_reset(void)
{
Eina_List *l;
Eina_List *l, *ll;
E_Comp *c;
EINA_LIST_FOREACH(compositors, l, c)
{
E_Comp_Win *cw;
E_Comp_Zone *cz;
// ecore_evas_manual_render_set(c->ee, conf->lock_fps);
_e_comp_fps_update(c);
EINA_LIST_FOREACH(c->zones, ll, cz)
_e_comp_zone_fill(c, cz);
EINA_INLIST_FOREACH(c->wins, cw)
{
if ((cw->shobj) && (cw->obj))

View 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, nocomp_fs, UCHAR);
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, match.disable_popups, UCHAR);
E_CONFIG_VAL(D, T, match.disable_borders, UCHAR);
E_CONFIG_VAL(D, T, match.disable_overrides, UCHAR);

View File

@ -28,6 +28,7 @@ struct _E_Comp_Config
unsigned char nocomp_fs;
unsigned char smooth_windows;
double first_draw_delay;
Eina_Bool disable_screen_effects;
struct
{

View File

@ -72,6 +72,7 @@ struct _E_Config_Dialog_Data
int fps_corner;
int fps_average_range;
double first_draw_delay;
int disable_screen_effects;
};
/* Protos */
@ -1171,13 +1172,15 @@ _advanced_create_widgets(E_Config_Dialog *cfd,
e_widget_list_object_append(ol, ob, 1, 0, 0.5);
ob = e_widget_check_add(evas, _("Disable composite theming for windows"), &(cfdata->match.disable_borders));
ob = e_widget_check_add(evas, _("Disable composite effects for windows"), &(cfdata->match.disable_borders));
e_widget_list_object_append(ol, ob, 1, 0, 0.5);
ob = e_widget_check_add(evas, _("Disable composite theming for menus"), &(cfdata->match.disable_menus));
ob = e_widget_check_add(evas, _("Disable composite effects for menus"), &(cfdata->match.disable_menus));
e_widget_list_object_append(ol, ob, 1, 0, 0.5);
ob = e_widget_check_add(evas, _("Disable composite theming for popups"), &(cfdata->match.disable_popups));
ob = e_widget_check_add(evas, _("Disable composite effects for popups"), &(cfdata->match.disable_popups));
e_widget_list_object_append(ol, ob, 1, 0, 0.5);
ob = e_widget_check_add(evas, _("Disable composite theming for overrides"), &(cfdata->match.disable_overrides));
ob = e_widget_check_add(evas, _("Disable composite effects for overrides"), &(cfdata->match.disable_overrides));
e_widget_list_object_append(ol, ob, 1, 0, 0.5);
ob = e_widget_check_add(evas, _("Disable composite effects for screen"), &(cfdata->disable_screen_effects));
e_widget_list_object_append(ol, ob, 1, 0, 0.5);
of = e_widget_frametable_add(evas, _("Styles"), 0);
@ -1415,6 +1418,7 @@ _advanced_apply_data(E_Config_Dialog *cfd __UNUSED__,
(_comp_mod->conf->match.disable_borders != cfdata->match.disable_borders) ||
(_comp_mod->conf->match.disable_overrides != cfdata->match.disable_overrides) ||
(_comp_mod->conf->match.disable_menus != cfdata->match.disable_menus) ||
(_comp_mod->conf->disable_screen_effects != cfdata->disable_screen_effects) ||
(cfdata->match.changed)
)
{
@ -1468,6 +1472,7 @@ _advanced_apply_data(E_Config_Dialog *cfd __UNUSED__,
_comp_mod->conf->match.disable_borders = cfdata->match.disable_borders;
_comp_mod->conf->match.disable_overrides = cfdata->match.disable_overrides;
_comp_mod->conf->match.disable_menus = cfdata->match.disable_menus;
_comp_mod->conf->disable_screen_effects = cfdata->disable_screen_effects;
_comp_mod->conf->lock_fps = cfdata->lock_fps;
_comp_mod->conf->smooth_windows = cfdata->smooth_windows;
_comp_mod->conf->grab = cfdata->grab;
@ -1670,6 +1675,7 @@ _basic_apply_data(E_Config_Dialog *cfd __UNUSED__,
_comp_mod->conf->match.disable_borders = cfdata->match.disable_borders = cfdata->match.disable_all;
_comp_mod->conf->match.disable_overrides = cfdata->match.disable_overrides = cfdata->match.disable_all;
_comp_mod->conf->match.disable_menus = cfdata->match.disable_menus = cfdata->match.disable_all;
_comp_mod->conf->disable_screen_effects = cfdata->disable_screen_effects = cfdata->match.disable_all;
}
_comp_mod->conf->lock_fps = cfdata->lock_fps;
_comp_mod->conf->smooth_windows = cfdata->smooth_windows;