diff options
author | Quentin Glidic <sardemff7+git@sardemff7.net> | 2016-08-18 16:45:30 +0200 |
---|---|---|
committer | Quentin Glidic <sardemff7+git@sardemff7.net> | 2016-09-01 01:26:07 +0200 |
commit | 1714f01e0cfcc6b71946d5c8d9898a2eaba86fac (patch) | |
tree | 41344c0361ac3d8449a64dd96f58e5b82ea818db | |
parent | 5c611d933f60f720db98331c9c1c6ed4420f9782 (diff) |
libweston-desktop/xwayland: Do not over-destroy the view
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>
-rw-r--r-- | libweston-desktop/xwayland.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/libweston-desktop/xwayland.c b/libweston-desktop/xwayland.c index cb083237..bd68bc68 100644 --- a/libweston-desktop/xwayland.c +++ b/libweston-desktop/xwayland.c @@ -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); } |