Age | Commit message (Collapse) | Author |
|
This makes swaylock more or less work.
|
|
Fixes #312
|
|
Struct was renamed in wlc, use the new name.
|
|
|
|
A criteria is a string in the form of `[class="regex.*" title="str"]`.
It is stored in a struct with a list of *tokens* which is a
attribute/value pair (stored as a `crit_token` struct). Most tokens will
also have a precompiled regex stored that will be used during criteria
matching.
for_window command: When a new view is created its metadata is tested
against all stored criteria, and if a match is found the associated
command list is executed.
Unfortunately some metadata is not available in sway at the moment
(specifically `instance`, `window_role` and `urgent`). Any criteria
string that tries to match an unsupported attribute will fail.
(Note that while the criteria code can be used to parse any criteria
string it is currently only used by the `for_window` command.)
|
|
|
|
Thanks @Cloudef, it works great
|
|
This does not work as expected. I think the problem is on the wlc side.
Please review, @Cloudef. To reproduce the issues:
1. Run sway
2. Open terminal in sway
3. Run swaybg
swaybg will create a surface and ask to have it set as the background,
but wlc_handle_from_wl_surface_resource will return 0. If the swaybg
surface is a shell surface, then it works - but wlc complains about the
pointer type and segfaults as soon as the pre-render hook tries to draw
the background.
|
|
When querying for an adjacent output we now need an absolute position in
order to know which adjacent output that matches. (The position is
either the current mouse position or the center of the currently focused
container, depending on context.)
If two outputs have one edge each that at least partially align with
each other they now count as adjacent.
Seamless mouse is affected by this and now properly moves and positions
itself between outputs with "uneven" placement (as long as they have at
least some part of the edge adjacent to each other).
When focusing or moving a container in a specified direction the center
of the current focused container decides where to look for an adjacent
output. So if e.g. an output has two adjacent outputs to the right and a
"focus right" command is issued then it's the placement of the currently
focused container that decides which output actually gets focused.
Also, if an output has at least one output adjacent in some direction
but the entire edge is not covered (ie. it has "holes" with no outputs),
then the algorithm will choose the output that is closest to the
currently focused container (this does not apply to seamless mouse, the
pointer will just stop at the edge in that case).
|
|
Apparently I missed some
cc @Cloudef
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If e.g. a window has a popup open then that will lock the current focus,
making a workspace switch denied.
So don't move the mouse pointer in such cases.
|
|
(E.g. if the user is using a scrollbar at the edge of the screen then
switching workspace would cancel the scroll.)
|
|
In i3 the ipc reply will contain a human readable error message, and
this patch replicates that behaviour.
However, that error message is also useful for logging, which this
patch takes advantage of.
E.g. instead of logging errors directly in commands.c/checkargs, it is
fed back to the caller which eventually ends up logging everything with
maximum context available (config.c/read_config).
So instead of logging e.g. "Error on line 'exit'" it will now log:
"Error on line 'exit': Can't execute from config."
|
|
|
|
|
|
|
|
(Currently, after switching output the relative position of the mouse
stays the same.)
|
|
merge
|
|
|
|
|
|
This reverts commit e1d18e42a8f3a597b9bf5f1bb2ab6c346e4e7983.
Fixes #180
cc @taiyu-len
|
|
|
|
|
|
|
|
|
|
log.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fixes #124
Keyboard handling can likely be simplified after this change.
|
|
fixed keyboard handling
|
|
handle_key does not get the keysym from wlc anymore
|
|
|
|
Focus floating window, if any, when the last tiling window has been closed
|
|
|
|
|
|
|
|
view_visibility enum remains with one constant that is the mask to wlc's view masking
|