summaryrefslogtreecommitdiffstats
path: root/sway/tree/view.c
diff options
context:
space:
mode:
authorLibravatar Ronan Pigott <rpigott@berkeley.edu>2020-10-25 14:20:11 -0700
committerLibravatar Tudor Brindus <me@tbrindus.ca>2020-12-20 00:58:42 -0500
commitece6a1d408456ade74c88dee7d4b9e0491f0bdaf (patch)
tree09f5a40a02347c927a91ab66da6c794cfd787c97 /sway/tree/view.c
parentRevert "commands/move: maintain workspace_layout when moving" (diff)
downloadsway-ece6a1d408456ade74c88dee7d4b9e0491f0bdaf.tar.gz
sway-ece6a1d408456ade74c88dee7d4b9e0491f0bdaf.tar.zst
sway-ece6a1d408456ade74c88dee7d4b9e0491f0bdaf.zip
Change workspace_layout to match i3 behavior
In i3, the workspace_layout command does not affect the workspace layout. Instead, new workspace level containers are wrapped in the desired layout and the workspace layout always defaults to the output orientation.
Diffstat (limited to 'sway/tree/view.c')
-rw-r--r--sway/tree/view.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/sway/tree/view.c b/sway/tree/view.c
index 354f2d34..e690c334 100644
--- a/sway/tree/view.c
+++ b/sway/tree/view.c
@@ -732,10 +732,11 @@ void view_map(struct sway_view *view, struct wlr_surface *wlr_surface,
732 ws = seat_get_last_known_workspace(seat); 732 ws = seat_get_last_known_workspace(seat);
733 } 733 }
734 734
735 struct sway_container *container = view->container;
735 if (target_sibling) { 736 if (target_sibling) {
736 container_add_sibling(target_sibling, view->container, 1); 737 container_add_sibling(target_sibling, container, 1);
737 } else if (ws) { 738 } else if (ws) {
738 workspace_add_tiling(ws, view->container); 739 container = workspace_add_tiling(ws, container);
739 } 740 }
740 ipc_event_window(view->container, "new"); 741 ipc_event_window(view->container, "new");
741 742
@@ -759,26 +760,26 @@ void view_map(struct sway_view *view, struct wlr_surface *wlr_surface,
759 } 760 }
760 761
761 if (config->popup_during_fullscreen == POPUP_LEAVE && 762 if (config->popup_during_fullscreen == POPUP_LEAVE &&
762 view->container->workspace && 763 container->workspace &&
763 view->container->workspace->fullscreen && 764 container->workspace->fullscreen &&
764 view->container->workspace->fullscreen->view) { 765 container->workspace->fullscreen->view) {
765 struct sway_container *fs = view->container->workspace->fullscreen; 766 struct sway_container *fs = container->workspace->fullscreen;
766 if (view_is_transient_for(view, fs->view)) { 767 if (view_is_transient_for(view, fs->view)) {
767 container_set_fullscreen(fs, false); 768 container_set_fullscreen(fs, false);
768 } 769 }
769 } 770 }
770 771
771 view_update_title(view, false); 772 view_update_title(view, false);
772 container_update_representation(view->container); 773 container_update_representation(container);
773 774
774 if (fullscreen) { 775 if (fullscreen) {
775 container_set_fullscreen(view->container, true); 776 container_set_fullscreen(view->container, true);
776 arrange_workspace(view->container->workspace); 777 arrange_workspace(view->container->workspace);
777 } else { 778 } else {
778 if (view->container->parent) { 779 if (container->parent) {
779 arrange_container(view->container->parent); 780 arrange_container(container->parent);
780 } else if (view->container->workspace) { 781 } else if (container->workspace) {
781 arrange_workspace(view->container->workspace); 782 arrange_workspace(container->workspace);
782 } 783 }
783 } 784 }
784 785