Age | Commit message (Collapse) | Author |
|
|
|
ipc: make json for view match i3's output more closely
|
|
Use output identifier for workspace config
|
|
seat: don't traverse the list to check if it's empty
|
|
Found by introspection.
Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru>
|
|
i3 seems to make all window properties, with the exception of
transient_for, optional[1].
[1]: https://github.com/i3/i3/blob/315ff17563fd703b2f5117b2ec4d46e89389d323/src/ipc.c#L435-L450
Signed-off-by: Franklin "Snaipe" Mathieu <snaipe@diacritic.io>
|
|
It turns out that i3 does not have a `class` key in the json description
of a view, but provides it through `window_properties.class`. Since
`window_properties` has been added by 8fc9328, we can remove `class`
altogether.
Signed-off-by: Franklin "Snaipe" Mathieu <snaipe@diacritic.io>
|
|
Reworked fish completions and moved stuff in swaylock manpage
|
|
|
|
|
|
|
|
|
|
|
|
This reverts commit 94985146ea00b40f72cd6afaa191fd92a46e4fd3.
|
|
Don't reset cursor during mouse operations
|
|
|
|
tree/view.c: fix uninitialized variables warning
|
|
|
|
Respect border settings when rendering lone tabbed/stacked child
|
|
In i3, when a child of a tabbed or stacked container has no siblings,
its border settings are respected.
This patch achieves the same effect by rendering a lone tabbed/stacked
child as if it's a linear container. This makes the border settings be
respected.
Over in view_autoconfigure, we compensate for this by only adjusting
`y_offset` if there's multiple children.
|
|
Fix #2992
|
|
Move a function call, such that data it depends on is initialized before.
|
|
Fix focus after a non-visible workspace's last container is destroyed
|
|
The code being changed is responsible for updating the focus stack when
a container is destroyed in a different part of the tree to where the
real focus is. It's attempting to set focus_inactive to a sibling (or
parent if no siblings) of the container that is being destroyed, then
put our real focus back on the end of the focus stack.
The problem occurs when the container being destroyed is in a different
workspace. For example:
* Have a focused view on workspace 1
* Have workspace 2 not visible with a single view that is unmapping
* The first call to seat_set_raw_focus sets focus to workspace 2 because
it's the parent
* Prior to this patch, the second call to seat_set_raw_focus would set
focus to the view on workspace 1
* Later, when using output_get_active_workspace, this function would
return workspace 2 because it's the first workspace it finds in the
focus stack.
To fix this, workspace 1 must be placed on the focus stack between
workspace 2 and the focused view. That's what this patch does.
Lastly, it also uses seat_get_focus_inactive to choose the focus. This
fixes a crash when a view unmaps while a non-container is focused (eg.
swaylock), because focus is NULL.
|
|
Fix re-tiling for floating containers
|
|
sway-ipc: don't log errno if unneeded and add more descriptive errors
|
|
When a floating container is tiled (e.g.: 'floating toggle' or
'floating disable'), it should be placed after/below the inactive
focused container from the tiling layout.
|
|
|
|
protect newline
|
|
|
|
Update workspace.c
|
|
re-added missing output check after config load
|
|
Remove output requirement for workspace command
|
|
swaybar: fix scrolling behaviour
|
|
Deny several commands when there's no outputs connected
|
|
Rebase the cursor after applying transactions
|
|
|
|
This approaches cursor rebasing from a different angle. Rather than
littering the codebase with cursor_rebase calls and using transaction
callbacks, this just runs cursor_rebase after applying every transaction
- but only if there's outputs connected, because otherwise it causes a
crash during shutdown.
There is one known case where we still need to call cursor_rebase
directly, and that's when running `seat seat0 cursor move ...`. This
command doesn't set anything as dirty so no transaction occurs.
|
|
Implement the presentation-time protocol
|
|
|
|
1. wrap_scroll has been fixed
2. release bindings are checked when returning early
|
|
This makes it congruent with its visual appearance, making it easier to
reason about.
|
|
Document how to identify outputs by make, model and serial
|
|
Fix containers not being resized when entering scratchpad
|
|
|
|
This fixes a regression introduced by
662466e8db773926bf61b21280194a3540ae26ec. When adding a container to the
scratchpad, setting container->scratchpad = true before
container_set_floating made container_set_floating believe that the
container was already floating. This fixes it by setting the property
afterwards instead.
|
|
swaylock: exit early if unable to get input inhibitor
|
|
When scrolling on a tab titlebar, set focus_inactive if not focused
|
|
For example, create layout H[view T[view view view]], focus the view in
the hsplit and scroll the mouse wheel over the tab title bars. Prior to
this patch, focus would be given to a descendant of the tabbed
container. This patch keeps the focus on the hsplit view.
This also renames some of the variables used in this part of the code to
make it be easier to follow.
|
|
Rebase the cursor after mapping a view
|