diff options
author | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-10-08 23:39:35 +1000 |
---|---|---|
committer | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-10-08 23:39:35 +1000 |
commit | b8002fc0c4c7e517665cb78ab206338f7f7560a7 (patch) | |
tree | e50eb1a123503d34156ec049e737e645eae5906c | |
parent | Use current state when rendering transient containers (diff) | |
download | sway-b8002fc0c4c7e517665cb78ab206338f7f7560a7.tar.gz sway-b8002fc0c4c7e517665cb78ab206338f7f7560a7.tar.zst sway-b8002fc0c4c7e517665cb78ab206338f7f7560a7.zip |
Look for any ancestor when checking for fullscreen exit
-rw-r--r-- | sway/desktop/xdg_shell.c | 9 | ||||
-rw-r--r-- | sway/desktop/xdg_shell_v6.c | 9 | ||||
-rw-r--r-- | sway/desktop/xwayland.c | 9 |
3 files changed, 12 insertions, 15 deletions
diff --git a/sway/desktop/xdg_shell.c b/sway/desktop/xdg_shell.c index 54831679..5b53653d 100644 --- a/sway/desktop/xdg_shell.c +++ b/sway/desktop/xdg_shell.c | |||
@@ -404,12 +404,11 @@ static void handle_map(struct wl_listener *listener, void *data) { | |||
404 | if (config->popup_during_fullscreen == POPUP_LEAVE && | 404 | if (config->popup_during_fullscreen == POPUP_LEAVE && |
405 | view->container->workspace && | 405 | view->container->workspace && |
406 | view->container->workspace->fullscreen && | 406 | view->container->workspace->fullscreen && |
407 | view->container->workspace->fullscreen->view && | ||
407 | xdg_surface->toplevel->parent) { | 408 | xdg_surface->toplevel->parent) { |
408 | struct wlr_xdg_surface *psurface = xdg_surface->toplevel->parent; | 409 | struct sway_container *fs = view->container->workspace->fullscreen; |
409 | struct sway_xdg_shell_view *parent = psurface->data; | 410 | if (is_transient_for(view, fs->view)) { |
410 | struct sway_view *sway_view = &parent->view; | 411 | container_set_fullscreen(fs, false); |
411 | if (sway_view->container && sway_view->container->is_fullscreen) { | ||
412 | container_set_fullscreen(sway_view->container, false); | ||
413 | } | 412 | } |
414 | } | 413 | } |
415 | 414 | ||
diff --git a/sway/desktop/xdg_shell_v6.c b/sway/desktop/xdg_shell_v6.c index dacfca02..ac42cfed 100644 --- a/sway/desktop/xdg_shell_v6.c +++ b/sway/desktop/xdg_shell_v6.c | |||
@@ -399,12 +399,11 @@ static void handle_map(struct wl_listener *listener, void *data) { | |||
399 | if (config->popup_during_fullscreen == POPUP_LEAVE && | 399 | if (config->popup_during_fullscreen == POPUP_LEAVE && |
400 | view->container->workspace && | 400 | view->container->workspace && |
401 | view->container->workspace->fullscreen && | 401 | view->container->workspace->fullscreen && |
402 | view->container->workspace->fullscreen->view && | ||
402 | xdg_surface->toplevel->parent) { | 403 | xdg_surface->toplevel->parent) { |
403 | struct wlr_xdg_surface_v6 *psurface = xdg_surface->toplevel->parent; | 404 | struct sway_container *fs = view->container->workspace->fullscreen; |
404 | struct sway_xdg_shell_v6_view *parent = psurface->data; | 405 | if (is_transient_for(view, fs->view)) { |
405 | struct sway_view *sway_view = &parent->view; | 406 | container_set_fullscreen(fs, false); |
406 | if (sway_view->container && sway_view->container->is_fullscreen) { | ||
407 | container_set_fullscreen(sway_view->container, false); | ||
408 | } | 407 | } |
409 | } | 408 | } |
410 | 409 | ||
diff --git a/sway/desktop/xwayland.c b/sway/desktop/xwayland.c index 80489f93..2bdb7dc0 100644 --- a/sway/desktop/xwayland.c +++ b/sway/desktop/xwayland.c | |||
@@ -410,12 +410,11 @@ static void handle_map(struct wl_listener *listener, void *data) { | |||
410 | if (config->popup_during_fullscreen == POPUP_LEAVE && | 410 | if (config->popup_during_fullscreen == POPUP_LEAVE && |
411 | view->container->workspace && | 411 | view->container->workspace && |
412 | view->container->workspace->fullscreen && | 412 | view->container->workspace->fullscreen && |
413 | view->container->workspace->fullscreen->view && | ||
413 | xsurface->parent) { | 414 | xsurface->parent) { |
414 | struct wlr_xwayland_surface *psurface = xsurface->parent; | 415 | struct sway_container *fs = view->container->workspace->fullscreen; |
415 | struct sway_xwayland_view *parent = psurface->data; | 416 | if (is_transient_for(view, fs->view)) { |
416 | struct sway_view *sway_view = &parent->view; | 417 | container_set_fullscreen(fs, false); |
417 | if (sway_view->container && sway_view->container->is_fullscreen) { | ||
418 | container_set_fullscreen(sway_view->container, false); | ||
419 | } | 418 | } |
420 | } | 419 | } |
421 | 420 | ||