summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@bitplanet.net>2014-04-07 10:16:19 -0700
committerKristian Høgsberg <krh@bitplanet.net>2014-04-07 10:16:19 -0700
commitba83db216ca8b84c250f9902fbbd4883cf63912b (patch)
tree661c726f4e3bb7b4bc0244218bf6b82f8532e1c5
parentd7fb309dd0a4b0d718c577738926516fc768428e (diff)
xwayland: Clean up unpaired surfaces
-rw-r--r--xwayland/window-manager.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/xwayland/window-manager.c b/xwayland/window-manager.c
index 7a042e57..699bade5 100644
--- a/xwayland/window-manager.c
+++ b/xwayland/window-manager.c
@@ -681,6 +681,8 @@ weston_wm_create_surface(struct wl_listener *listener, void *data)
if (window->surface_id ==
wl_resource_get_id(surface->resource)) {
xserver_map_shell_surface(window, surface);
+ window->surface_id = 0;
+ wl_list_remove(&window->link);
break;
}
}
@@ -1120,6 +1122,9 @@ weston_wm_window_destroy(struct weston_wm_window *window)
window->frame_id = XCB_WINDOW_NONE;
}
+ if (window->surface_id)
+ wl_list_remove(&window->link);
+
hash_table_remove(window->wm->window_hash, window->id);
free(window);
}