Always unmap before destroying surface

This commit is contained in:
emersion 2018-04-11 23:09:13 -04:00
parent 7efd9885b6
commit 8dec7036d0
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48
4 changed files with 59 additions and 25 deletions

View file

@ -102,6 +102,16 @@ struct wlr_xdg_surface_configure {
struct wlr_xdg_toplevel_state *toplevel_state;
};
/**
* An xdg-surface is a user interface element requiring management by the
* compositor. An xdg-surface alone isn't useful, a role should be assigned to
* it in order to map it.
*
* When a surface has a role and is ready to be displayed, the `map` event is
* emitted. When a surface should no longer be displayed, the `unmap` event is
* emitted. The `unmap` event is guaranted to be emitted before the `destroy`
* event if the view is destroyed when mapped.
*/
struct wlr_xdg_surface {
struct wlr_xdg_client *client;
struct wl_resource *resource;

View file

@ -90,6 +90,16 @@ struct wlr_xdg_toplevel_v6_state {
uint32_t min_width, min_height;
};
/**
* An xdg-surface is a user interface element requiring management by the
* compositor. An xdg-surface alone isn't useful, a role should be assigned to
* it in order to map it.
*
* When a surface has a role and is ready to be displayed, the `map` event is
* emitted. When a surface should no longer be displayed, the `unmap` event is
* emitted. The `unmap` event is guaranted to be emitted before the `destroy`
* event if the view is destroyed when mapped.
*/
struct wlr_xdg_toplevel_v6 {
struct wl_resource *resource;
struct wlr_xdg_surface_v6 *base;

View file

@ -75,6 +75,15 @@ struct wlr_xwayland_surface_size_hints {
uint32_t win_gravity;
};
/**
* An Xwayland user interface component. It has an absolute position in
* layout-local coordinates.
*
* When a surface is ready to be displayed, the `map` event is emitted. When a
* surface should no longer be displayed, the `unmap` event is emitted. The
* `unmap` event is guaranted to be emitted before the `destroy` event if the
* view is destroyed when mapped.
*/
struct wlr_xwayland_surface {
xcb_window_t window_id;
struct wlr_xwm *xwm;
@ -116,8 +125,7 @@ struct wlr_xwayland_surface {
// _NET_WM_STATE
bool fullscreen;
bool maximized_vert;
bool maximized_horz;
bool maximized_vert, maximized_horz;
bool has_alpha;