diff --git a/man/weston.ini.man b/man/weston.ini.man index 79743f0b..c5ec3218 100644 --- a/man/weston.ini.man +++ b/man/weston.ini.man @@ -150,8 +150,15 @@ enables screen locking (boolean). .BI "animation=" zoom sets the effect used for opening new windows (string). Can be .B zoom, -.B fade. -Otherwise, no animation is used. +.B fade, +.B none. +By default, no animation is used. +.TP 7 +.BI "startup-animation=" fade +sets the effect used for opening new windows (string). Can be +.B fade, +.B none. +By default, the fade animation is used. .TP 7 .BI "binding-modifier=" ctrl sets the modifier key used for common bindings (string), such as moving diff --git a/src/shell.c b/src/shell.c index 45bbed37..e0c35272 100644 --- a/src/shell.c +++ b/src/shell.c @@ -163,6 +163,7 @@ struct desktop_shell { uint32_t binding_modifier; enum animation_type win_animation_type; + enum animation_type startup_animation_type; }; enum shell_surface_type { @@ -414,9 +415,6 @@ get_modifier(char *modifier) static enum animation_type get_animation_type(char *animation) { - if (!animation) - return ANIMATION_NONE; - if (!strcmp("zoom", animation)) return ANIMATION_ZOOM; else if (!strcmp("fade", animation)) @@ -448,6 +446,10 @@ shell_configuration(struct desktop_shell *shell) weston_config_section_get_string(section, "animation", &s, "none"); shell->win_animation_type = get_animation_type(s); free(s); + weston_config_section_get_string(section, + "startup-animation", &s, "fade"); + shell->startup_animation_type = get_animation_type(s); + free(s); weston_config_section_get_uint(section, "num-workspaces", &shell->workspaces.num, DEFAULT_NUM_WORKSPACES); @@ -3317,7 +3319,12 @@ do_shell_fade_startup(void *data) { struct desktop_shell *shell = data; - shell_fade(shell, FADE_IN); + if (shell->startup_animation_type == ANIMATION_FADE) + shell_fade(shell, FADE_IN); + else if (shell->startup_animation_type == ANIMATION_NONE) { + weston_surface_destroy(shell->fade.surface); + shell->fade.surface = NULL; + } } static void diff --git a/weston.ini b/weston.ini index 9a7137f9..70069316 100644 --- a/weston.ini +++ b/weston.ini @@ -9,6 +9,7 @@ background-type=tile panel-color=0x90ff0000 locking=true animation=zoom +startup-animation=fade #binding-modifier=ctrl #num-workspaces=6 #cursor-theme=whiteglass