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
parent 6eae61a67f
commit cb31e7ce55

View file

@ -492,7 +492,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);
@ -504,6 +504,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;