Skip to content
  • Pekka Paalanen's avatar
    libweston-desktop/xwayland: add is_mapped handling for XWAYLAND · e3a582f9
    Pekka Paalanen authored
    
    
    The xwayland window type XWAYLAND is not handled by the shell at all,
    instead libweston-desktop maps such surfaces itself. However, it forgot
    to set weston_surface::is_mapped and weston_view::is_mapped.
    
    weston_surface::is_mapped affects the behaviour of weston_view_unmap()
    and weston_surface_attach().
    
    weston_view::is_mapped affects the behaviour of weston_view_unmap() and
    weston_view_destroy().
    
    When manually mapping a window of type XWAYLAND, mark both the view and
    surface as mapped. This follows the expections in libweston, even though
    the meaning of is_mapped is not clearly defined for either surface or
    view.
    
    Also, when the XWAYLAND window is manually unmapped, unmap the
    weston_surface. This updates weston_surface::is_mapped to reflect the
    state. However, as a side-effect it will also unmap all sibling views,
    should any exist.
    
    v2: rename surface_base to wsurface
    Signed-off-by: default avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
    Reviewed-by: default avatarQuentin Glidic <sardemff7+git@sardemff7.net>
    Acked-by: default avatarDaniel Stone <daniels@collabora.com>
    e3a582f9