aboutsummaryrefslogtreecommitdiff
path: root/xwayland/xwm.c
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2017-12-14 14:37:43 -0500
committerGitHub <noreply@github.com>2017-12-14 14:37:43 -0500
commit46ac8e1243d3d32c656b09e641f8e9732035f635 (patch)
tree66bcfa4057175e46509f77537d22379075308165 /xwayland/xwm.c
parenta9fb071d49b244b72846b384a9e2ef2d9b03a05f (diff)
parent75ef7860bbc3017bbe8e176138cac71da0127711 (diff)
Merge pull request #468 from emersion/display-destroy
Use destroy listeners on wl_display
Diffstat (limited to 'xwayland/xwm.c')
-rw-r--r--xwayland/xwm.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/xwayland/xwm.c b/xwayland/xwm.c
index 54092cda..90b9cba8 100644
--- a/xwayland/xwm.c
+++ b/xwayland/xwm.c
@@ -1081,6 +1081,12 @@ void xwm_destroy(struct wlr_xwm *xwm) {
if (xwm->cursor) {
xcb_free_cursor(xwm->xcb_conn, xwm->cursor);
}
+ if (xwm->colormap) {
+ xcb_free_colormap(xwm->xcb_conn, xwm->colormap);
+ }
+ if (xwm->window) {
+ xcb_destroy_window(xwm->xcb_conn, xwm->window);
+ }
if (xwm->event_source) {
wl_event_source_remove(xwm->event_source);
}
@@ -1088,6 +1094,9 @@ void xwm_destroy(struct wlr_xwm *xwm) {
wl_list_for_each_safe(xsurface, tmp, &xwm->surfaces, link) {
wlr_xwayland_surface_destroy(xsurface);
}
+ wl_list_for_each_safe(xsurface, tmp, &xwm->unpaired_surfaces, link) {
+ wlr_xwayland_surface_destroy(xsurface);
+ }
wl_list_remove(&xwm->compositor_surface_create.link);
xcb_disconnect(xwm->xcb_conn);