libweston-desktop/xwayland: Do not over-destroy the view
authorQuentin Glidic <sardemff7+git@sardemff7.net>
Thu, 18 Aug 2016 14:45:30 +0000 (16:45 +0200)
committerQuentin Glidic <sardemff7+git@sardemff7.net>
Wed, 31 Aug 2016 23:26:07 +0000 (01:26 +0200)
With this weston_view_destroy() call, Xwayland popups make Weston freeze
in a busy-loop (probably corrupted wl_list).

Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
libweston-desktop/xwayland.c

index cb08323..bd68bc6 100644 (file)
@@ -152,13 +152,11 @@ 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);
 }