diff options
author | Drew DeVault <sir@cmpwn.com> | 2018-05-12 14:56:20 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-12 14:56:20 -0400 |
commit | 9d607b72532096e469fdaccf474836c310b629ff (patch) | |
tree | 963c5348e2d48ed188e2d4f08ecb01898f1d116d | |
parent | b1c33ecc256c58c7ecee28e2f4507dd374727d62 (diff) | |
parent | 360e63b8a73836b85b44980ce7e0f77348d43df3 (diff) | |
download | sway-9d607b72532096e469fdaccf474836c310b629ff.tar.xz |
Merge pull request #1967 from emersion/remove-xdg-popup-unmap
Don't destroy view child on xdg-popup unmap
-rw-r--r-- | include/sway/tree/view.h | 1 | ||||
-rw-r--r-- | sway/desktop/xdg_shell_v6.c | 8 | ||||
-rw-r--r-- | sway/desktop/xwayland.c | 4 |
3 files changed, 0 insertions, 13 deletions
diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h index 4ecd8c44..8091fe0c 100644 --- a/include/sway/tree/view.h +++ b/include/sway/tree/view.h @@ -153,7 +153,6 @@ struct sway_xdg_popup_v6 { struct wlr_xdg_surface_v6 *wlr_xdg_surface_v6; struct wl_listener new_popup; - struct wl_listener unmap; struct wl_listener destroy; }; diff --git a/sway/desktop/xdg_shell_v6.c b/sway/desktop/xdg_shell_v6.c index 8ecb330d..e9051b6c 100644 --- a/sway/desktop/xdg_shell_v6.c +++ b/sway/desktop/xdg_shell_v6.c @@ -20,7 +20,6 @@ static void popup_destroy(struct sway_view_child *child) { } struct sway_xdg_popup_v6 *popup = (struct sway_xdg_popup_v6 *)child; wl_list_remove(&popup->new_popup.link); - wl_list_remove(&popup->unmap.link); wl_list_remove(&popup->destroy.link); free(popup); } @@ -39,11 +38,6 @@ static void popup_handle_new_popup(struct wl_listener *listener, void *data) { popup_create(wlr_popup, popup->child.view); } -static void popup_handle_unmap(struct wl_listener *listener, void *data) { - struct sway_xdg_popup_v6 *popup = wl_container_of(listener, popup, unmap); - view_child_destroy(&popup->child); -} - static void popup_handle_destroy(struct wl_listener *listener, void *data) { struct sway_xdg_popup_v6 *popup = wl_container_of(listener, popup, destroy); view_child_destroy(&popup->child); @@ -62,8 +56,6 @@ static struct sway_xdg_popup_v6 *popup_create( wl_signal_add(&xdg_surface->events.new_popup, &popup->new_popup); popup->new_popup.notify = popup_handle_new_popup; - wl_signal_add(&xdg_surface->events.unmap, &popup->unmap); - popup->unmap.notify = popup_handle_unmap; wl_signal_add(&xdg_surface->events.destroy, &popup->destroy); popup->destroy.notify = popup_handle_destroy; diff --git a/sway/desktop/xwayland.c b/sway/desktop/xwayland.c index 8f935760..1d3c857d 100644 --- a/sway/desktop/xwayland.c +++ b/sway/desktop/xwayland.c @@ -82,10 +82,6 @@ static void unmanaged_handle_unmap(struct wl_listener *listener, void *data) { static void unmanaged_handle_destroy(struct wl_listener *listener, void *data) { struct sway_xwayland_unmanaged *surface = wl_container_of(listener, surface, destroy); - struct wlr_xwayland_surface *xsurface = surface->wlr_xwayland_surface; - if (xsurface->mapped) { - unmanaged_handle_unmap(&surface->unmap, xsurface); - } wl_list_remove(&surface->map.link); wl_list_remove(&surface->unmap.link); wl_list_remove(&surface->destroy.link); |