Skip to content
  • Pekka Paalanen's avatar
    shell: wait for desktop-shell init before fade in · 79346ab3
    Pekka Paalanen authored
    
    
    On Raspberry Pi, weston-desktop-shell is so slow to start, that the
    compositor has time to run the fade-in before the wallpaper is up. The
    user launching Weston sees the screen flipping to black, the fbcon
    fading in, and then the desktop popping up.
    
    To fix this, wait for the weston-desktop-shell to draw
    everything before starting the initial fade-in. A new request is
    added to the private desktop-shell protocol to signal it. If a
    desktop-shell client does not support the new request, the fade-in
    happens already at bind time.
    
    If weston-desktop-shell crashes, or does not send the 'desktop_ready'
    request in 15 seconds, the compositor will fade in anyway. This should
    avoid a blocked screen in case weston-desktop-shell malfunction.
    
    shell_fade_startup() does not directly start the fade-in but schedules
    an idle callback, so that the compositor can process all pending events
    before starting the fade clock. Otherwise (on RPi) we risk skipping part
    of the animation. Yes, it is a hack, that should have been done in
    window.c and weston-desktop-shell instead.
    
    Signed-off-by: default avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
    79346ab3