[PATCH weston 1/2] desktop-shell: Add an option for shell startup timeout
Pekka Paalanen
ppaalanen at gmail.com
Tue May 26 01:25:33 PDT 2015
On Mon, 25 May 2015 15:19:37 -0500
Derek Foreman <derekf at osg.samsung.com> wrote:
> Make the time to wait for shell startup before removing the fade surface
> configurable.
>
> Use this in internal-screenshot so we can screenshot without waiting for
> the shell to start.
>
> Signed-off-by: Derek Foreman <derekf at osg.samsung.com>
Hi,
is this really necessary when you have disabled the fade-in completely
with startup-animation=none, like the screenshot test does?
Ah, I see, even if startup-animation is set to none, we still have the
black surface covering everything until the shell is ready. The black
surface goes away when weston-desktop-shell signals ready with a
request.
I will propose a simpler patch, that will just change the none case,
instead of adding a new config key.
Thanks,
pq
> ---
> desktop-shell/shell.c | 18 +++++++++++++++---
> man/weston.ini.man | 5 +++++
> tests/internal-screenshot.ini | 1 +
> weston.ini.in | 1 +
> 4 files changed, 22 insertions(+), 3 deletions(-)
>
> diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
> index 452cd5f..5e60312 100644
> --- a/desktop-shell/shell.c
> +++ b/desktop-shell/shell.c
> @@ -5369,7 +5369,7 @@ fade_startup_timeout(void *data)
> }
>
> static void
> -shell_fade_init(struct desktop_shell *shell)
> +shell_fade_init(struct desktop_shell *shell, uint32_t timeout)
> {
> /* Make compositor output all black, and wait for the desktop-shell
> * client to signal it is ready, then fade in. The timer triggers a
> @@ -5378,6 +5378,9 @@ shell_fade_init(struct desktop_shell *shell)
>
> struct wl_event_loop *loop;
>
> + if (!timeout)
> + return;
> +
> if (shell->fade.view != NULL) {
> weston_log("%s: warning: fade surface already exists\n",
> __func__);
> @@ -5394,7 +5397,7 @@ shell_fade_init(struct desktop_shell *shell)
> loop = wl_display_get_event_loop(shell->compositor->wl_display);
> shell->fade.startup_timer =
> wl_event_loop_add_timer(loop, fade_startup_timeout, shell);
> - wl_event_source_timer_update(shell->fade.startup_timer, 15000);
> + wl_event_source_timer_update(shell->fade.startup_timer, timeout);
> }
>
> static void
> @@ -6613,6 +6616,10 @@ module_init(struct weston_compositor *ec,
> struct workspace **pws;
> unsigned int i;
> struct wl_event_loop *loop;
> + struct weston_config *config;
> + struct weston_config_section *s;
> + uint32_t timeout;
> + const char *config_file;
>
> shell = zalloc(sizeof *shell);
> if (shell == NULL)
> @@ -6717,7 +6724,12 @@ module_init(struct weston_compositor *ec,
>
> shell_add_bindings(ec, shell);
>
> - shell_fade_init(shell);
> + config_file = weston_config_get_name_from_env();
> + config = weston_config_parse(config_file);
> + s = weston_config_get_section(config, "shell", NULL, NULL);
> + weston_config_section_get_uint(s, "startup-timeout", &timeout, 15000);
> + weston_config_destroy(config);
> + shell_fade_init(shell, timeout);
>
> clock_gettime(CLOCK_MONOTONIC, &shell->startup_time);
>
> diff --git a/man/weston.ini.man b/man/weston.ini.man
> index fe86bb6..0bb77e0 100644
> --- a/man/weston.ini.man
> +++ b/man/weston.ini.man
> @@ -287,6 +287,11 @@ sets the path to lock screen background image (string). (tablet shell only)
> .TP 7
> .BI "homescreen=" path
> sets the path to home screen background image (string). (tablet shell only)
> +.TP 7
> +.BI "startup-timeout=" 15000
> +sets the time in milliseconds to wait for the shell to start. Normally the
> +screen is black until the shell finishes starting. If shell startup exceeds
> +this timeout, windows will be displayed anyway.
> .RE
> .SH "LAUNCHER SECTION"
> There can be multiple launcher sections, one for each launcher.
> diff --git a/tests/internal-screenshot.ini b/tests/internal-screenshot.ini
> index abc046e..95c01bd 100644
> --- a/tests/internal-screenshot.ini
> +++ b/tests/internal-screenshot.ini
> @@ -1,3 +1,4 @@
> [shell]
> startup-animation=none
> background-color=0xCC336699
> +startup-timeout=0
> diff --git a/weston.ini.in b/weston.ini.in
> index 4fca0bb..534bb09 100644
> --- a/weston.ini.in
> +++ b/weston.ini.in
> @@ -15,6 +15,7 @@ startup-animation=fade
> #num-workspaces=6
> #cursor-theme=whiteglass
> #cursor-size=24
> +#startup-timeout=15000
>
> #lockscreen-icon=/usr/share/icons/gnome/256x256/actions/lock.png
> #lockscreen=/usr/share/backgrounds/gnome/Garden.jpg
More information about the wayland-devel
mailing list