| Age | Commit message (Collapse) | Author |
|
When no monitor is at (0,0), the screen rect containing all monitors
is not at the origin, but screen_apply_gravity_point assumes the passed
x/y are relative to the passed area, so adjust them.
|
|
|
|
|
|
This way you can actually do everything to it when it's offscreen,
not just resize the one edge that's poking out
|
|
|
|
This way, it can avoid running the code that moves it to a good position
relative to a mouse that isn't there
|
|
|
|
|
|
Use a file static boolean instead.
|
|
|
|
|
|
|
|
When the strict option is used, normal windows are not able to show themselves
while showing the desktop.
|
|
This change points out how useless the return value from client_find_resize_directional()
was, so it also removes that.
When all edges are blocked, the FillToEdge action will try to grow all four edges agin
without blocking any of them on their current edge. This more closely matches the
behaviour of the GrowToEdge action.
|
|
This extend the client_find_resize_directional() method to support
two growing modes, and return a bool for whether it was able to grow/shrink.
The client_find_resize_directional() method now takes an enum instead
of a bool, with two growing modes. The old mode which always tries to
grow, the a new mode that will only grow if the client's edge is not
already at a grow stopping point (ie against the edge of another window).
|
|
|
|
This one required some extra helpers so is separate commit
|
|
|
|
Also adds a Stop action that lets you stop running, in case you only
want to run actions on the first match.
|
|
This allows the If action to run queries against a client other than
the target of the actions being run, for example to check state on
the focused window while performing actions on another window during
focus cycling.
The syntax looks like
<action name="If">
<query target="default">
<title>FooBar</title>
<maximized>yes</maximized>
</query>
<query target="focus">
<desktop>3</desktop>
</query>
<then>
<action name="NextDesktop"/>
</then>
</action>
The above checks the client window that the actions will run on to
verify that its title is "FooBar" and that it is maximized. If that
is true, it also checks that the currently focused client window is
on desktop 3. If that is true also, then it runs the NextDesktop
action.
The target="" option can be set to "default" which uses the client
window that the actions will run on, or it can be "focus" which uses
the client window that is currently focused.
The <query> tag is optional, and the conditions inside the query can
be placed directly inside the If <action> tag, as they were before
this change. In that case, a default <query> tag is assumed with
target="default" which matches the previous behaviour.
Multiple <query> tags can be present, and they must all be true in
order to run the actions in <then>. If any one is false, the actions
in <else> will be run instead.
|
|
Void function should actually be declared void. Not-reached switch
condition should still return something.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Adds an <interactive>bool</interactive> option to the NextWindow and
PreviousWindow actions. When it is false, the action is not interactive and will
immediately switch focus to whatever the next focus target is.
Removing the "interactive" flag from the focus_cycle() method, as it was unused
previously, and the new code does not make use of it either. In order to be
non-interactive it simply starts a focus_cycle then immediately ends it when the
action ends.
The "interactive" flag in focus_cycle() forced a linear cycling order which may
not be what you want, so the new method is preferrable anyhow.
|
|
consistent (Fix bug 5758)
$wip and $pid would output values for the current target window if there was
one, but output nothing at all if there wasn't making the output difficult to
parse. Changed to make these always output a 0 if there is no target.
Added a $pointer variable that is replaced with the x and y coordiates of the
pointer, separated by a space.
Inspired by the work of Denis Kaganovich <mahatma@eu.by>.
|
|
Inspired by patches from Brian Mock <mock.brian@gmail.com>.
|
|
interacting with another window (Fix bug 5419).
When the execute action was run, we would say that the user had used the focused
at that time. Then when a new window popped up, we'd think the user was busy in
the current window and prevent the new one from steal focus.
Now the execute action does not update the "user interacted with the focused
window" timestamp anymore. So, if they aren't currently typing in some window
when they trigger an execute action, and the window appears, it will steal
focus.
|
|
increments (Fix bug 5228)
If the resize is less than the window's resize increment then we bump it up
to ensure a resize does at least happen.
|
|
We were finding the KeySym first, and then converting back to a modifier mask.
But KeySym on a key's release can differ from on its press, and we don't need
them to determine the modmask from the keycode.
[setxkbmap -option "grp:shifts_toggle"] turns Shift_L into XK_ISO_Prev_Group on
key release, and Shift_R into XK_ISO_Next_Group.
|
|
Make mod state passing more consistent, and always give actions the full state
instead of stripping sometimes. (They ended up expecting it stripped always).
|
|
It is the same as "none" for backward compatibility (it used to be a boolean).
|
|
Seeing as how you already use glib, I just substituted g_setenv and g_unsetenv
as appropriate, and it now works for me.
|
|
|
|
|
|
|
|
|
|
It can now match on window titles, virtual desktop (number, "current",
"other"),
demands_attention, and undecoratedness.
|
|
|
|
Have MoveResizeTo use config_parse_gravity_coord instead of duplicating it locally
Allow MoveResizeTo positions and sizes and per app positions to be relative to screen size
Rename to config_parse_relative_number so it can be used for sizes too
Add relative numbers to width/height in MoveResizeTo
Add relative numbers to MoveRelative
Add relative numbers to ResizeRelative, these are for the client size, not screen size
|
|
hilited/flashing/urgent windows (feature req/bug #4341)
|
|
|
|
accurately, using the table we built already for other purposes
|