libweston-desktop/xwayland: Actually destroy the view
authorQuentin Glidic <sardemff7+git@sardemff7.net>
Tue, 16 Aug 2016 08:55:02 +0000 (10:55 +0200)
committerQuentin Glidic <sardemff7+git@sardemff7.net>
Tue, 16 Aug 2016 09:10:41 +0000 (11:10 +0200)
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Jonas Ã…dahl <jadahl@gmail.com>
libweston-desktop/xwayland.c

index 927afab..da04f7f 100644 (file)
@@ -81,6 +81,7 @@ weston_desktop_xwayland_surface_change_state(struct weston_desktop_xwayland_surf
        if (surface->state != state) {
                if (surface->state == XWAYLAND) {
                        weston_desktop_surface_unlink_view(surface->view);
+                       weston_view_destroy(surface->view);
                        surface->view = NULL;
                }
 
@@ -149,11 +150,13 @@ weston_desktop_xwayland_surface_destroy(struct weston_desktop_surface *dsurface,
        wl_list_remove(&surface->resource_destroy_listener.link);
 
        weston_desktop_surface_unset_relative_to(surface->surface);
-       if (surface->added)
+       if (surface->added) {
                weston_desktop_api_surface_removed(surface->desktop,
                                                   surface->surface);
-       else if (surface->state == XWAYLAND)
+       } else if (surface->state == XWAYLAND) {
                weston_desktop_surface_unlink_view(surface->view);
+               weston_view_destroy(surface->view);
+       }
 
        free(surface);
 }