| 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 possibly avoids badness when the timeout destroy notify is removed
from the frame release func.
|
|
Avoids warnings like 'Source ID 8382 was not found when attempting to
remove it'. In particular some removals were missing in menuframe.c
resulting in a warning being printed every time a submenu was opened.
|
|
|
|
|
|
|
|
Found by coverity code analysis.
|
|
|
|
|
|
This way you can actually do everything to it when it's offscreen,
not just resize the one edge that's poking out
|
|
|
|
Also fixes minor indent error
|
|
As a side effect, _NET_RESTACK_REQUEST now also allows specifying the dock as the sibling.
|
|
I have to switch to a qwerty layout to play steam games, and every time
I switch back and forth, we lose some random bindings so I also had to
reconfigure Openbox every time, now I don't.
|
|
|
|
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).
|
|
|
|
Currently the code rolls its own binary search, but now that we have
a well-tested binary search implementation in obt/ we can make use
of that.
|
|
|
|
Original commit messages:
. Reformat to move closer to house style
. Add center on top of leat overlap place algo
. Add sentinel value to edge arrays
. Use a Size instead of a Rect for a centering field
. Fix off by one bug
. Need to declare dx and dy
. Pass length of edge array instead of recomputing
. Fix missing open-brace in config.c
. Address the more trivial subset of danakj comments
. Revert "Remove now-unused config_place_center option."
This reverts commit 5e282dae08be3b900e0337efa0fae8f3ffa92cd7.
. Remove reliance on sentinel value when scanning edge arrays
. Avoid need to initialize Size structure by removing it :)
. Clean up field expansion code somewhat
. Compress code further by using a structure for common args
. Fix search for next grid point
. Squeeze it even more by not using Size at all
|
|
|
|
|
|
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.
|
|
If the window has no border since the theme has bwidth=0, or because the
window is truly undecorated via MWM hints, then we should not allocate space
for the frame of the window which will just be empty pixels.
|
|
Void function should actually be declared void. Not-reached switch
condition should still return something.
|
|
|
|
|