xwayland: fix client request-unmap bug

Remove foreign-toplevel handle when a client sends a request-unmap to a
minimized (therefore unmapped) view.
This commit is contained in:
Johan Malm 2023-08-04 22:04:42 +01:00 committed by Johan Malm
parent dfc0dfba6d
commit d961dbf9b0

View file

@ -489,7 +489,7 @@ static void
xwayland_view_unmap(struct view *view, bool client_request) xwayland_view_unmap(struct view *view, bool client_request)
{ {
if (!view->mapped) { if (!view->mapped) {
return; goto out;
} }
view->mapped = false; view->mapped = false;
wl_list_remove(&view->commit.link); wl_list_remove(&view->commit.link);
@ -501,6 +501,7 @@ xwayland_view_unmap(struct view *view, bool client_request)
* than just minimized), destroy the foreign toplevel handle so * than just minimized), destroy the foreign toplevel handle so
* the unmapped view doesn't show up in panels and the like. * the unmapped view doesn't show up in panels and the like.
*/ */
out:
if (client_request && view->toplevel.handle) { if (client_request && view->toplevel.handle) {
wlr_foreign_toplevel_handle_v1_destroy(view->toplevel.handle); wlr_foreign_toplevel_handle_v1_destroy(view->toplevel.handle);
view->toplevel.handle = NULL; view->toplevel.handle = NULL;