diff options
Diffstat (limited to 'sway/desktop/xwayland.c')
-rw-r--r-- | sway/desktop/xwayland.c | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/sway/desktop/xwayland.c b/sway/desktop/xwayland.c index 3e08b20e..357c8883 100644 --- a/sway/desktop/xwayland.c +++ b/sway/desktop/xwayland.c | |||
@@ -109,29 +109,17 @@ static void handle_destroy(struct wl_listener *listener, void *data) { | |||
109 | wl_list_remove(&sway_surface->destroy.link); | 109 | wl_list_remove(&sway_surface->destroy.link); |
110 | wl_list_remove(&sway_surface->request_configure.link); | 110 | wl_list_remove(&sway_surface->request_configure.link); |
111 | wl_list_remove(&sway_surface->view->unmanaged_view_link); | 111 | wl_list_remove(&sway_surface->view->unmanaged_view_link); |
112 | 112 | container_view_destroy(sway_surface->view->swayc); | |
113 | struct sway_container *parent = container_view_destroy(sway_surface->view->swayc); | 113 | sway_surface->view->swayc = NULL; |
114 | if (parent) { | 114 | sway_surface->view->surface = NULL; |
115 | arrange_windows(parent, -1, -1); | ||
116 | } | ||
117 | |||
118 | free(sway_surface->view); | ||
119 | free(sway_surface); | ||
120 | } | 115 | } |
121 | 116 | ||
122 | static void handle_unmap_notify(struct wl_listener *listener, void *data) { | 117 | static void handle_unmap_notify(struct wl_listener *listener, void *data) { |
123 | struct sway_xwayland_surface *sway_surface = | 118 | struct sway_xwayland_surface *sway_surface = |
124 | wl_container_of(listener, sway_surface, unmap_notify); | 119 | wl_container_of(listener, sway_surface, unmap_notify); |
125 | |||
126 | wl_list_remove(&sway_surface->view->unmanaged_view_link); | 120 | wl_list_remove(&sway_surface->view->unmanaged_view_link); |
127 | wl_list_init(&sway_surface->view->unmanaged_view_link); | 121 | wl_list_init(&sway_surface->view->unmanaged_view_link); |
128 | 122 | container_view_destroy(sway_surface->view->swayc); | |
129 | // take it out of the tree | ||
130 | struct sway_container *parent = container_view_destroy(sway_surface->view->swayc); | ||
131 | if (parent) { | ||
132 | arrange_windows(parent, -1, -1); | ||
133 | } | ||
134 | |||
135 | sway_surface->view->swayc = NULL; | 123 | sway_surface->view->swayc = NULL; |
136 | sway_surface->view->surface = NULL; | 124 | sway_surface->view->surface = NULL; |
137 | } | 125 | } |