the unmap event will be followed by the deletion of the weston_surface, so the shell_surface will also be deleted by the shell. Having removed the surface_destroy_listener, the surface_destroy callback doesn't get called, so reset the value of shsurf here. --- src/xwayland/window-manager.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/src/xwayland/window-manager.c b/src/xwayland/window-manager.c index b4f64d3..3b88dac 100644 --- a/src/xwayland/window-manager.c +++ b/src/xwayland/window-manager.c @@ -877,6 +877,7 @@ weston_wm_handle_unmap_notify(struct weston_wm *wm, xcb_generic_event_t *event) if (window->surface) wl_list_remove(&window->surface_destroy_listener.link); window->surface = NULL; + window->shsurf = NULL; xcb_unmap_window(wm->conn, window->frame_id); } -- 1.8.4 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel