xwm: set the window's shsurf pointer to NULL on unmap handling
authorGiulio Camuffo <giuliocamuffo@gmail.com>
Tue, 17 Sep 2013 14:43:45 +0000 (16:43 +0200)
committerKristian Høgsberg <krh@bitplanet.net>
Sat, 21 Sep 2013 18:27:19 +0000 (11:27 -0700)
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

index b4f64d3..3b88dac 100644 (file)
@@ -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);
 }