diff options
author | emersion <contact@emersion.fr> | 2018-01-21 15:13:10 +0100 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2018-01-21 15:13:10 +0100 |
commit | d8b36357e4c8d9edef7df4ecb465b7f728795f90 (patch) | |
tree | 13c2f82f25bb785b22004db180ab4a4d37a1e3d3 /rootston/xwayland.c | |
parent | a636d72fc77ebcaa986fd1b72e85664e2fe586a3 (diff) |
rootston: add roots_view_child::destroy
Diffstat (limited to 'rootston/xwayland.c')
-rw-r--r-- | rootston/xwayland.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/rootston/xwayland.c b/rootston/xwayland.c index 6f9912e6..24315e1a 100644 --- a/rootston/xwayland.c +++ b/rootston/xwayland.c @@ -236,6 +236,12 @@ static void handle_map_notify(struct wl_listener *listener, void *data) { view->y = xsurface->y; wl_list_insert(&desktop->views, &view->link); + struct wlr_subsurface *subsurface; + wl_list_for_each(subsurface, &view->wlr_surface->subsurface_list, + parent_link) { + subsurface_create(view, subsurface); + } + view_damage_whole(view); roots_surface->surface_commit.notify = handle_surface_commit; @@ -252,6 +258,11 @@ static void handle_unmap_notify(struct wl_listener *listener, void *data) { view_damage_whole(view); + struct roots_view_child *child, *tmp; + wl_list_for_each_safe(child, tmp, &view->children, link) { + child->destroy(child); + } + view->wlr_surface = NULL; wl_list_remove(&view->link); } |