xdg-shell: reset added/committed flag on unmap

When a client attaches a NULL buffer to its wl_surface, it's
unmapped. This resets the xdg_surface in its initial state. An
extra NULL commit makes the compositor send an initial configure
event.

Note, wlr_xdg_toplevel.added is separate from wlr_xdg_surface.added.

Closes: https://github.com/swaywm/sway/issues/7397
This commit is contained in:
Simon Ser 2023-01-31 15:47:20 +01:00
parent d36dd96e8d
commit e69dd909f7
2 changed files with 4 additions and 0 deletions

View file

@ -449,6 +449,8 @@ void unmap_xdg_popup(struct wlr_xdg_popup *popup) {
popup->seat = NULL; popup->seat = NULL;
} }
popup->committed = false;
} }
void destroy_xdg_popup(struct wlr_xdg_popup *popup) { void destroy_xdg_popup(struct wlr_xdg_popup *popup) {

View file

@ -535,6 +535,8 @@ void unmap_xdg_toplevel(struct wlr_xdg_toplevel *toplevel) {
toplevel->requested.fullscreen = false; toplevel->requested.fullscreen = false;
toplevel->requested.maximized = false; toplevel->requested.maximized = false;
toplevel->requested.minimized = false; toplevel->requested.minimized = false;
toplevel->added = false;
} }
void destroy_xdg_toplevel(struct wlr_xdg_toplevel *toplevel) { void destroy_xdg_toplevel(struct wlr_xdg_toplevel *toplevel) {