libweston-desktop/xwayland: add is_mapped handling for XWAYLAND

Graphics / Wayland / Weston - Pekka Paalanen [collabora.co.uk] - 25 November 2016 05:13 UTC

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

e3a582f libweston-desktop/xwayland: add is_mapped handling for XWAYLAND
libweston-desktop/xwayland.c | 6 ++++++
1 file changed, 6 insertions(+)

Upstream: cgit.freedesktop.org


  • Share