aboutsummaryrefslogtreecommitdiff
path: root/include/sway/tree
AgeCommit message (Collapse)Author
2018-05-26Implement swap commandBrian Ashworth
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-22Replace empty argument with voidRyan Dwyer
2018-05-22Use constants for titlebar dimensionsRyan Dwyer
2018-05-21Don't track damage for views on inactive tabsRyan Dwyer
2018-05-21Implement tabbed layoutRyan Dwyer
2018-05-19Rebuild textures if needed when moving a containerRyan Dwyer
When moving a container to an output which has a different scale than the previous, rebuild the title and marks textures at the new scale. Fixes #1999.
2018-05-17Implement show_marksRyan Dwyer
2018-05-15Implement marksRyan Dwyer
2018-05-14Merge branch 'master' into fix-1975Brian Ashworth
2018-05-14Kill wl_shellemersion
2018-05-14Merge branch 'master' into fix-1975Brian Ashworth
2018-05-14Fix titles and detect edges for hide_edge_bordersBrian Ashworth
2018-05-14Revert "Revert "Merge pull request #1953 from RyanDwyer/criteria-focused""Ryan Dwyer
This reverts commit ac0e62584f6101277b76622a7274866cd50f615c. This reimplements the criteria __focused__ commit in preparation for fixing a known bug.
2018-05-14Revert "Revert "Merge pull request #1943 from RyanDwyer/criteria-improvements""Ryan Dwyer
This reverts commit 32a572cecfd0f6072a78ce0a381a2f8365f9010a. This reimplements the criteria overhaul in preparation for fixing a known bug.
2018-05-13Add xdg-shell stable supportemersion
2018-05-13Merge branch 'master' into edge-bordersRyan Dwyer
2018-05-12Don't destroy view child on xdg-popup unmapemersion
2018-05-12Count descendant views for hide_edge_borders smartBrian Ashworth
2018-05-12Revert "Merge pull request #1943 from RyanDwyer/criteria-improvements"Drew DeVault
This reverts commit 3e1bf721c69cb6df70c3dc3d3d4933e987339676, reversing changes made to 2217518bd554d0f11dafa7ec4e8f35f2e4762fbd.
2018-05-12Revert "Merge pull request #1953 from RyanDwyer/criteria-focused"Drew DeVault
This reverts commit 2511adffc29996b64d01d85b3de31de9a2af9096, reversing changes made to 3e1bf721c69cb6df70c3dc3d3d4933e987339676.
2018-05-12Implement __focused__ criteriaRyan Dwyer
2018-05-11Overhaul criteria implementationRyan Dwyer
The criteria struct now uses properties for each token type rather than the list_t list of tokens. The reason for this is that different token types have different data types: pcre, string and number to name a few. This solution should be more flexible moving forward. A bonus of this is that criteria is now easier to understand when looking at the struct definition. The criteria parser has been rewritten because the previous one didn't support valueless pairs (eg. [class="foo" floating]). Criteria now has types. Types at the moment are CT_COMMAND, CT_ASSIGN_WORKSPACE and CT_ASSIGN_OUTPUT. i3 uses types as well. Previously the assign command was creating a criteria with 'move to workspace <name>' as its command, but this caused the window to appear briefly on the focused workspace before being moved to the assigned workspace. It now creates the view directly in the assigned workspace. Each view will only execute a given criteria once. This is achieved by storing a list of executed criteria in the view. This is the same strategy used by i3. Escaping now works properly. Previously you could do things like [class="Fire\"fox"] and the stored value would be 'Fire\"fox', but it should be (and now is) 'Fire"fox'. The public functions in criteria.c are now all prefixed with criteria_. Xwayland views now listen to the set_title, set_class and set_window_type events and criteria will be run when these happen. XDG shell has none of these events so it continues to update the title in handle_commit. Each view type's get_prop function has been split into get_string_prop and get_int_prop because some properties like the X11 window ID and window type are numeric. The following new criteria tokens are now supported: * id (X11 window ID) * instance * tiling * workspace
2018-05-10Damage borders when damaging viewemersion
2018-05-05Implement title_formatRyan Dwyer
This implements the title_format command, with a new placeholder %shell which gets substituted with the view type (xwayland, xdg_shell_v6 or wl_shell). Example config: for_window [title=".*"] title_format %title (class=%class instance=%instance shell=%shell)
2018-05-03Calculate config->font_height based on existing container titlesRyan Dwyer
2018-05-03Render titlesRyan Dwyer
2018-05-01Restore view_update_position()Ryan Dwyer
2018-05-01Move docblock and fix indenting of switch/case.Ryan Dwyer
2018-04-30Implement bordersRyan Dwyer
Implements rendering of borders. Title text is still to do. Implements the following configuration directives: * client.focused * client.focused_inactive * client.unfocused * client.urgent * border * default_border
2018-04-30Remove arrange_windows()Ryan Dwyer
After the refactor, this function is no longer called.
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-24Update wording about unmanaged/unmapped viewsRyan Dwyer
2018-04-18Fullscreen fixes.Ryan Dwyer
2018-04-17Create sway_workspace struct.Ryan Dwyer
2018-04-17Feedback for fullscreen.Ryan Dwyer
2018-04-16Implement fullscreen.Ryan Dwyer
2018-04-07Merge pull request #1756 from emersion/output-damageDrew DeVault
Fine-grained damage tracking
2018-04-07Merge pull request #1700 from swaywm/move-cmd-fullDrew DeVault
Implement move [left|right|up|down]
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-06Add debug tree viewDrew DeVault
2018-04-06Simplify damage tracking functions, use them in layer shellemersion
2018-04-06Send surface enter/leave events to view childrenemersion
2018-04-06Implement move [left|right|up|down]Drew DeVault
The exact semantics of this command are complicated. I'll describe each test scenario as s-expressions. Everything assumes L_HORIZ if not specified, but if you rotate everything 90 degrees the same test cases hold. ``` (container (view a) (view b focus) (view c)) -> move left (container (view b focus) (view a) (view c)) (container (view a) (view b focus) (view c)) -> move right (container (view a) (view c) (view b focus)) (container L_VERT (view a)) (container L_HORIZ (view b) (view c focus)) -> move up (container L_VERT (view a) (view c focus)) (container L_HORIZ (view b)) (workspace (view a) (view b focus) (view c)) -> move up (workspace [split direction flipped] (view b focus) (container (view a) (view c))) (workspace (view a) (view b focus) (view c)) -> move down (workspace [split direction flipped] (container (view a) (view c)) (view b focus))) Note: outputs use wlr_output_layout instead of assuming that i+/-1 is the next output in the move direction. (root (output X11-1 (workspace 1)) (output X11-2 (workspace 1 (view a focus) (view b))))) -> move left (root (output X11-1 (workspace 1 (view a focus))) (output X11-2 (workspace 1 (view b))))) (root (output X11-1 (workspace 1 (container (view a) (view b))) (output X11-2 (workspace 1 (view c focus))))) -> move left (root (output X11-1 (workspace 1 (container (view a) (view b)) (view c focus))) (output X11-2 (workspace 1))) ```
2018-04-06Fix wl_output enter/leave eventsemersion
Fixes #1739
2018-04-05Remove L_TYPESemersion
2018-04-05Handle unmanaged surfaces motionemersion
2018-04-05Add container_damage_wholeemersion