summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--man/weston.ini.man11
-rw-r--r--src/shell.c15
-rw-r--r--weston.ini1
3 files changed, 21 insertions, 6 deletions
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