diff --git a/xwayland/xwm.c b/xwayland/xwm.c index c2b9bd11a..886fe2516 100644 --- a/xwayland/xwm.c +++ b/xwayland/xwm.c @@ -743,6 +743,11 @@ static void xwm_handle_unmap_notify(struct wlr_xwm *xwm, return; } + if (xsurface->mapped) { + xsurface->mapped = false; + wlr_signal_emit_safe(&xsurface->events.unmap, xsurface); + } + if (xsurface->surface_id) { // Make sure we're not on the unpaired surface list or we // could be assigned a surface during surface creation that @@ -757,11 +762,6 @@ static void xwm_handle_unmap_notify(struct wlr_xwm *xwm, } xsurface->surface = NULL; - if (xsurface->mapped) { - xsurface->mapped = false; - wlr_signal_emit_safe(&xsurface->events.unmap, xsurface); - } - xsurface_set_wm_state(xsurface, ICCCM_WITHDRAWN_STATE); }