summaryrefslogtreecommitdiffstats
path: root/sway
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-10-08 23:50:43 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-10-08 23:50:43 +1000
commitd21d2c8665f8fdaad719bb81cc636052f7c1d1a1 (patch)
treeb8c7f95946f67238fe3f8cc892e77e76be124f5b /sway
parentLook for any ancestor when checking for fullscreen exit (diff)
downloadsway-d21d2c8665f8fdaad719bb81cc636052f7c1d1a1.tar.gz
sway-d21d2c8665f8fdaad719bb81cc636052f7c1d1a1.tar.zst
sway-d21d2c8665f8fdaad719bb81cc636052f7c1d1a1.zip
Remove duplicate code
Diffstat (limited to 'sway')
-rw-r--r--sway/desktop/xdg_shell.c11
-rw-r--r--sway/desktop/xdg_shell_v6.c11
-rw-r--r--sway/desktop/xwayland.c11
-rw-r--r--sway/tree/view.c10
4 files changed, 10 insertions, 33 deletions
diff --git a/sway/desktop/xdg_shell.c b/sway/desktop/xdg_shell.c
index 5b53653d..4690a3c5 100644
--- a/sway/desktop/xdg_shell.c
+++ b/sway/desktop/xdg_shell.c
@@ -401,17 +401,6 @@ static void handle_map(struct wl_listener *listener, void *data) {
401 view_update_csd_from_client(view, csd); 401 view_update_csd_from_client(view, csd);
402 } 402 }
403 403
404 if (config->popup_during_fullscreen == POPUP_LEAVE &&
405 view->container->workspace &&
406 view->container->workspace->fullscreen &&
407 view->container->workspace->fullscreen->view &&
408 xdg_surface->toplevel->parent) {
409 struct sway_container *fs = view->container->workspace->fullscreen;
410 if (is_transient_for(view, fs->view)) {
411 container_set_fullscreen(fs, false);
412 }
413 }
414
415 if (xdg_surface->toplevel->client_pending.fullscreen) { 404 if (xdg_surface->toplevel->client_pending.fullscreen) {
416 container_set_fullscreen(view->container, true); 405 container_set_fullscreen(view->container, true);
417 arrange_workspace(view->container->workspace); 406 arrange_workspace(view->container->workspace);
diff --git a/sway/desktop/xdg_shell_v6.c b/sway/desktop/xdg_shell_v6.c
index ac42cfed..ff950c70 100644
--- a/sway/desktop/xdg_shell_v6.c
+++ b/sway/desktop/xdg_shell_v6.c
@@ -396,17 +396,6 @@ static void handle_map(struct wl_listener *listener, void *data) {
396 WLR_SERVER_DECORATION_MANAGER_MODE_CLIENT; 396 WLR_SERVER_DECORATION_MANAGER_MODE_CLIENT;
397 view_update_csd_from_client(view, csd); 397 view_update_csd_from_client(view, csd);
398 398
399 if (config->popup_during_fullscreen == POPUP_LEAVE &&
400 view->container->workspace &&
401 view->container->workspace->fullscreen &&
402 view->container->workspace->fullscreen->view &&
403 xdg_surface->toplevel->parent) {
404 struct sway_container *fs = view->container->workspace->fullscreen;
405 if (is_transient_for(view, fs->view)) {
406 container_set_fullscreen(fs, false);
407 }
408 }
409
410 if (xdg_surface->toplevel->client_pending.fullscreen) { 399 if (xdg_surface->toplevel->client_pending.fullscreen) {
411 container_set_fullscreen(view->container, true); 400 container_set_fullscreen(view->container, true);
412 arrange_workspace(view->container->workspace); 401 arrange_workspace(view->container->workspace);
diff --git a/sway/desktop/xwayland.c b/sway/desktop/xwayland.c
index 2bdb7dc0..ebf2131e 100644
--- a/sway/desktop/xwayland.c
+++ b/sway/desktop/xwayland.c
@@ -407,17 +407,6 @@ static void handle_map(struct wl_listener *listener, void *data) {
407 // Put it back into the tree 407 // Put it back into the tree
408 view_map(view, xsurface->surface); 408 view_map(view, xsurface->surface);
409 409
410 if (config->popup_during_fullscreen == POPUP_LEAVE &&
411 view->container->workspace &&
412 view->container->workspace->fullscreen &&
413 view->container->workspace->fullscreen->view &&
414 xsurface->parent) {
415 struct sway_container *fs = view->container->workspace->fullscreen;
416 if (is_transient_for(view, fs->view)) {
417 container_set_fullscreen(fs, false);
418 }
419 }
420
421 if (xsurface->fullscreen) { 410 if (xsurface->fullscreen) {
422 container_set_fullscreen(view->container, true); 411 container_set_fullscreen(view->container, true);
423 arrange_workspace(view->container->workspace); 412 arrange_workspace(view->container->workspace);
diff --git a/sway/tree/view.c b/sway/tree/view.c
index b107d871..97525d6b 100644
--- a/sway/tree/view.c
+++ b/sway/tree/view.c
@@ -575,6 +575,16 @@ void view_map(struct sway_view *view, struct wlr_surface *wlr_surface) {
575 view_set_tiled(view, true); 575 view_set_tiled(view, true);
576 } 576 }
577 577
578 if (config->popup_during_fullscreen == POPUP_LEAVE &&
579 view->container->workspace &&
580 view->container->workspace->fullscreen &&
581 view->container->workspace->fullscreen->view) {
582 struct sway_container *fs = view->container->workspace->fullscreen;
583 if (view_is_transient_for(view, fs->view)) {
584 container_set_fullscreen(fs, false);
585 }
586 }
587
578 if (should_focus(view)) { 588 if (should_focus(view)) {
579 input_manager_set_focus(input_manager, &view->container->node); 589 input_manager_set_focus(input_manager, &view->container->node);
580 } 590 }