summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Glidic <sardemff7+git@sardemff7.net>2016-08-18 16:45:30 +0200
committerQuentin Glidic <sardemff7+git@sardemff7.net>2016-09-01 01:26:07 +0200
commit1714f01e0cfcc6b71946d5c8d9898a2eaba86fac (patch)
tree41344c0361ac3d8449a64dd96f58e5b82ea818db
parent5c611d933f60f720db98331c9c1c6ed4420f9782 (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.c6
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);
}