shell: Add a new weston.ini to control the startup animation
The new key startup-animation in the [shell] section lets you
control the startup animation. Default is fade, but with this patch
we can also do none, which just show the desktop as fast as possible.
diff --git a/src/shell.c b/src/shell.c
index 45bbed3..e0c3527 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -163,6 +163,7 @@
uint32_t binding_modifier;
enum animation_type win_animation_type;
+ enum animation_type startup_animation_type;
};
enum shell_surface_type {
@@ -414,9 +415,6 @@
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 @@
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 @@
{
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