Age | Commit message (Collapse) | Author |
|
`vertical` and `horizontal` should be swapped.
If border_left and border_right were set to 0, the vertical borders
instead of the horizontal borders would be hidden.
i3 handles this command equally.
|
|
|
|
This should fix #839
|
|
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.
|
|
|
|
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
|
|
with 0x0 geometry
|
|
The `focus child` command focuses the child container within the selected
container.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fixes #769
|
|
where needed
|
|
|
|
|
|
Borders are now drawn correctly (same behavior as i3) for tabbed and
stacked containers, when the children have 'border none' set.
|
|
|
|
This patch makes sure to clear the border buffer of fullscreen view so
the border doesn't get drawn behind a fullscreen view, which would be
visible if the view was transparent.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Makes any tabbed/stacked layout a container to separate from floating
windows which may be attached to a workspace.
|
|
|
|
|
|
This fixes floating borders when moving outside of the output. Not sure what
happens with dual screen as I only have 1 monitor
|
|
|
|
|
|
|
|
The borders are implemented as a surface/buffer attached to each view
which is sent to and rendered by wlc in the view_pre_render callback.
All the drawing logic is handled in sway/border.c and all the logic for
calculating the geometry of the border/view is handled in
`update_geometry` in sway/layout.c (same place as gaps are calculated).
|
|
Note that this segfaults ALL THE TIME in wlc code. Paging @Cloudef for
help, I'm at a loss.
|
|
|
|
It's possible to assign workspaces to certain outputs using the command:
workspace <name> output <output>
However, this did not work in some cases where the workspace was
assigned before the given output was made available to sway.
This patch fixes those cases.
|
|
This patch aims to correctly handle moving focus <left|right|up|down>
between outputs.
For instance, if moving from one output to a new output at the left of
the current one, it should focus the right-most view/container on the
new output, and the opposite if moving from right to left. This should
happen regardless of the previously stored focus of the new output.
This also handles moving to a new output above or below the current one.
|
|
If the width or height of a container can't be evenly distributed to its
children, then the layout algorithm still thought it got it right (due
to using decimals) which caused a gap of one or more pixels for some
window arrangements.
This is fixed by this patch by first rounding off the width and height
(so that decimals are never introduced) and then adjusting the last
view in a container to fill the remaining pixels (which now is counted
correctly due to the decimals being removed).
Also, due to the way gaps are implemented, an odd sized gap can never be
aligned properly, so just adjust to closest even number.
|
|
This brings consistency into the algorithm (instead of resetting and
then fetching again).
|
|
This makes sure that the window being added to a container gets focus.
|
|
Triggers workspace init event when moving a floating window to a new
workspace.
This is a follow up on #391 which didn't handle floating windows.
|
|
This makes sure that the workspace IPC event is triggered when needed.
Fixes #382 while making sure that the IPC event is only triggered once.
|
|
Since x/y won't be zero when there's a top or left panel in place, we
need to take those coordinates into account too.
|
|
Track each panel separately via its wl_resource. `set_panel_position`
might be called before `set_panel`, so reuse panel config.
Place the position in panel_config so that each panel has its own
position.
|