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.
dev
Kristian Høgsberg 11 years ago
parent 991810c1b3
commit 724c8d9e7c
  1. 11
      man/weston.ini.man
  2. 13
      src/shell.c
  3. 1
      weston.ini

@ -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

@ -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;
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

@ -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

Loading…
Cancel
Save