Age | Commit message (Collapse) | Author |
|
Merge the main rendering paths of all containers to make focus setting a bit
simpler and easier to follow.
|
|
This is for compatability with i3.
|
|
|
|
|
|
|
|
Focus the container on the output (not the output itself) when an output is
focused.
This is intended to fix a bug where borders are not updated correctly when
switching the vt away/back to sway.
|
|
The value of `locked_view_focus` is always false. Remove dead code associated
with this variable to simplify things.
|
|
Implement focus handling for containers
|
|
|
|
When a workspace is focused, update the borders of all its child containers to
be focused to indicate the workspace container is focused.
|
|
When switching back to a workspace after new window creation, it is now
necessary to descend the focus stack into the focused container of the
workspace to determine which container should get the focus. This is because
the `set_focused_container()` function no longer automatically descends into
the focus stack to find the correct view to focus.
|
|
Replace `update_view_border()` with `update_container_border()`. The latter
should handle both the case where the container is a view or if the container
has children.
|
|
The previous implementation of focus handling assumed that only views can be
focused. Containers can also be focused with a command like `focus parent` or
`focus child`.
Change `set_focused_container()` to handle the case of the given container
being a container with children and update borders accordingly.
|
|
|
|
Deeply nested containers which had their layouts changed didn't update
their actual_geometry, this messed up their child containers. Those got
width and height of 0, which was then decreased for stacked/tabbed
containers by title height. Underflow ensued, these containers suddenly
had height 4294967273. In short, not updating actual_geometry didn't
play nicely with nested containers.
|
|
|
|
|
|
|
|
When titlebar is hidden, top border of the topmost view inside
tabbed/stacked container will not be drawn. This is changed in layout.c
On the other hand, top border should be drawn sometimes, for example
when titlebar is hidden on a view that is not the topmost inside
tabbed/stacked container. This is changed in border.c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bugfix: invisible windows on empty workspace with tabbed/stacked layout
|
|
Implement `focus child` command
|
|
acrisci/feature/render-focused-stack-children-focused
Render focused stack/tab children focused
|
|
Previously, cmd_kill only closed a focused view, while containers were
not affected. Now it closes all views that are children of the focused
container.
|
|
with 0x0 geometry
|
|
Whenever a stacked or tabbed container has focused, paint the titlebars of all
its child windows to be focused as well to indicate the parent stack/tab
container has the focus.
|
|
The `focus child` command focuses the child container within the selected
container.
|
|
In `move_focus()`, when given an output, set the focus to the workspace of that
output instead of the output itself.
This fixes a bug that did not allow users to switch between outputs introduced
in afc6ad6.
It also fixes other issues before that commit when a workspace with children
was selected and the user tried to switch focus in the direction of another
output.
|
|
In the `focus parent` command, do not set focus above the workspace level.
These containers are not meant to be focused.
This prevents a crash on repeated `focus parent` commands.
|
|
For compatibility with i3, put the command result into an array.
Returning multiple command results is still unsupported.
|
|
|
|
Hide outer gaps too when smart_gaps is on
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|