aboutsummaryrefslogtreecommitdiff
path: root/sway/commands/layout.c
AgeCommit message (Collapse)Author
2018-08-28Fix gaps issuesRyan Dwyer
* In layout command, arrange parent of parent - not sure why this is needed but it is * Remove gap adjustment when rendering * Workspace should use outer gaps, not inner * Add exceptions for tabbed and stacked containers * Don't mess with gap state when splitting a container
2018-08-06commands: fix layout implementation (also better name for previous split layout)Ian Fan
2018-08-06commands: complete layout implementationIan Fan
2018-07-14Simplify transactions by utilising a dirty flag on containersRyan Dwyer
This PR changes the way we handle transactions to a more simple method. The new method is to mark containers as dirty from low level code (eg. arranging, or container_destroy, and eventually seat_set_focus), then call transaction_commit_dirty which picks up those containers and runs them through a transaction. The old methods of using transactions (arrange_and_commit, or creating one manually) are now no longer possible. The highest-level code (execute_command and view implementation handlers) will call transaction_commit_dirty, so most other code just needs to set containers as dirty. This is done by arranging, but can also be done by calling container_set_dirty.
2018-06-09Refactor everything that needs to arrange windowsRyan Dwyer
* The arrange_foo functions are now replaced with arrange_and_commit, or with manually created transactions and arrange_windows x2. * The arrange functions are now only called from the highest level functions rather than from both high level and low level functions. * Due to the previous point, view_set_fullscreen_raw and view_set_fullscreen are both merged into one function again. * Floating and fullscreen are now working with transactions.
2018-06-01Replace is_floating boolean with functionRyan Dwyer
2018-05-25Clean up container title functionsRyan Dwyer
* Add and use lenient_strcat and lenient_strncat functions * Rename `concatenate_child_titles` function as that's no longer what it does * Rename `container_notify_child_title_changed` because we only need to notify that the tree structure has changed, not titles * Don't notify parents when a child changes its title * Update ancestor titles when changing a container's layout * Eg. create nested tabs and change the inner container to stacking * No need to store tree presentation in both container->name and formatted_title
2018-05-22Implement stacked layoutRyan Dwyer
2018-05-21Implement tabbed layoutRyan Dwyer
2018-04-28Refactor arrange_windows()Ryan Dwyer
Replaces arrange_windows() with arrange_root(), arrange_output(), arrange_workspace() and arrange_children_of(). Also makes fullscreen views save and restore their dimensions, which allows it to preserve any custom resize and is also a requirement for floating views once they are implemented.
2018-04-26Remove sway_container.workspace_layoutRyan Dwyer
Fixes #1716.
2018-04-06Revert "Break everything^W^WUse wlr_box for sway_container"Drew DeVault
2018-04-06Break everything^W^WUse wlr_box for sway_containerDrew DeVault
2018-04-03clean up container_get_default_layoutTony Crisci
2018-03-29Revert "Merge pull request #1653 from swaywm/revert-1647-refactor-tree"Tony Crisci
This reverts commit 472e81f35d689d67cda241acafda91c688d61046, reversing changes made to 6b7841b11ff4cd35f54d69dc92029855893e5ce0.
2018-03-29Revert "Refactor tree"Drew DeVault
2018-03-29arrange windowsTony Crisci
2018-03-29more renaming thingsTony Crisci
2018-03-29rename container functionsTony Crisci
2018-03-29move tree includes to their own directoryTony Crisci
2018-02-24remove checks for command handlersTony Crisci
2018-02-22basic layout commandTony Crisci
2017-11-18Move everything to sway/old/Drew DeVault
2017-04-29prevent crash when `layout auto` is missing argsZandr Martin
2017-04-05Improve criteria handlingCalvin Lee
This commit changes how commands decide what container to act on. Commands get the current container though `current_container`, a global defined in sway/commands.c. If a criteria is given before a command, then the following command will be run once for every container the criteria matches with a reference to the matching container in 'current_container'. Commands should use this instead of `get_focused_container()` from now on. This commit also fixes a few (minor) mistakes made in implementing marks such as non-escaped arrows in sway(5) and calling the "mark" command "floating" by accident. It also cleans up `criteria.c` in a few places.
2017-03-10UnGNUify the codebaseDrew DeVault
2017-01-14replaced "bot" with "bottom" in auto layout commandswil
2017-01-08reworked "layout auto*" star commandswil
- "layout auto_left|auto_xxx" are now "layout auto xxx" - "layout incmaster <n>" is now "layout auto master [set|inc] <n>" - "layout incncol <n>" is now "layout auto ncol [set|inc] <n>"
2017-01-08Indent cleanupswil
2017-01-01[fix] cleanups suggested by Sway communitywil
2017-01-01changed "layout promote" command to "move first"wil
This is more consistent with other Sway semantics.
2016-12-31[fix] cycle auto layouts backwardswil
2016-12-29cleanup in auto layoutswil
- added L_AUTO_FIRST/LAST instead of using explicit layouts. - when switching between auto layout that don't share the same major axis, invert the width/height of their child views to preserve their relative proportions.
2016-12-29introduce next/prev as a direction for focus/move commands.wil
2016-12-29Added "layout incnmaster|incncol" commandswil
2016-12-29Added Awesome/Monad type "auto" layoutswil
2016-12-04fix layout switching (was broken because of workspace_layout)D.B
For workspace containers, swayc_change_layout also changes ->layout alongside ->workspace_layout when it's a sensible thing to do. There is an additional test for 'layout toggle' command which ensures that containers will be tiled horizontally after toggling from tabbed or stacked.
2016-12-04add workspace_layout to containerD.B
Add swayc_change_layout function, which changes either layout or workspace_layout, depending on the container type.
2016-11-06change default layout toggle to L_HORIZD.B
After issuing 'layout toggle split' command from tabbed/stacked layout, layout should have been horizontally split.
2016-10-12Revert "Fixes dealing with workspace_layout and related bugs [rfc]"Drew DeVault
2016-10-11add workspace_layout, ensure ws is always L_HORIZD.B
Add swayc_change_layout function, which changes either layout or workspace_layout, depending on the container type. Workspace being always L_HORIZ makes this much more i3-compatible.
2016-09-02merge in latest commitsZandr Martin
2016-09-01refactor commands.cZandr Martin