Emit xwayland unmap signal before unmapping

This allows compositors to access the surface being unmapped. This
is also more consistent with the destroy signal.
This commit is contained in:
emersion 2018-04-06 14:13:52 -04:00
parent ae4cef9e41
commit 8b07a4d055
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48

View file

@ -743,6 +743,11 @@ static void xwm_handle_unmap_notify(struct wlr_xwm *xwm,
return; return;
} }
if (xsurface->mapped) {
xsurface->mapped = false;
wlr_signal_emit_safe(&xsurface->events.unmap, xsurface);
}
if (xsurface->surface_id) { if (xsurface->surface_id) {
// Make sure we're not on the unpaired surface list or we // Make sure we're not on the unpaired surface list or we
// could be assigned a surface during surface creation that // 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; 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); xsurface_set_wm_state(xsurface, ICCCM_WITHDRAWN_STATE);
} }