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.
This commit is contained in:
+11
-4
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user