Mikael Magnusson [Fri, 26 Sep 2014 08:45:17 +0000 (10:45 +0200)]
Allow clients to place themselves up to 99% offscreen.
Really what I want is keep the 10% but let them stay if they were already there. Most noticably steam jumps back to the 10% limit whenever you click anywhere because it stupidly moves itself to where it already is when you click anywhere inside it.
Mikael Magnusson [Sat, 22 Feb 2014 20:37:29 +0000 (21:37 +0100)]
Add keyboard/rebindOnMappingNotify option
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.
Dana Jansens [Sun, 1 Sep 2013 21:37:53 +0000 (17:37 -0400)]
Allow FillToEdge to grow when all its edges are blocked.
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.
Dana Jansens [Sun, 1 Sep 2013 20:48:39 +0000 (16:48 -0400)]
Clean up the FillToEdge action implementation
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).
Ian Zimmerman [Sat, 17 Aug 2013 23:08:25 +0000 (16:08 -0700)]
Add the old <center> option for the placement policy. (Bug 5946)
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
Dana Jansens [Sun, 18 Aug 2013 23:29:05 +0000 (19:29 -0400)]
Add queries to If actions
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 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.
Dana Jansens [Sun, 18 Aug 2013 23:29:05 +0000 (19:29 -0400)]
Add queries to If actions
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 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.
Dana Jansens [Sun, 11 Aug 2013 20:37:14 +0000 (16:37 -0400)]
Maximized undecored windows have incorrect top border. (Bug 5996)
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.
Dana Jansens [Sun, 11 Aug 2013 20:12:25 +0000 (16:12 -0400)]
window.inactive.label.text.color should default to white.
Currently it defaults to itself, which is NULL, and causes a crash.
The spec http://openbox.org/wiki/Help:Themes#window.inactive.label.text.color
claims that the default is white.
In 98b02c6b60bbde2a5db026b3ee3e6e6dc44d1a92 we had this property being read
twice, once with the NULL backup and once with white. It seems that we kept
the wrong one, so just switching this to white now.
Dana Jansens [Sun, 11 Aug 2013 20:04:50 +0000 (16:04 -0400)]
Fix a write out of bounds in splitvertical gradients (Bug 3612)
If the gradient has height 1, then y1sz is 0. We don't want to use the
first color and move the data pointer, since this will move it past the
end of the array.
Mikael Magnusson [Sun, 11 Aug 2013 12:09:41 +0000 (14:09 +0200)]
Only enforce resize incr for user resizes
When you toggle the scrollbar in urxvt, it resizes itself and may race
with the hint that updates the base size, resulting in the terminal area
shrinking.
Dana Jansens [Sun, 11 Aug 2013 04:46:48 +0000 (00:46 -0400)]
Remove fuzzy and outdated translations, add plural expressions.
Clean up the .po files for this release. Plural expressions are needed in
all files that have plurals. And replace fuzzy (incorrect) translations
with empty ones instead.
Dana Jansens [Sun, 11 Aug 2013 02:24:08 +0000 (22:24 -0400)]
Change the message about no icons in menus.
The message used to mention Imlib2, but now there are two libraries
that can be used to support icons. So make the message more generic
and show it only when both libraries are not present.
Dana Jansens [Sun, 11 Aug 2013 00:46:27 +0000 (20:46 -0400)]
Add support for loading SVG icons using librsvg.
This adds a configure option --disable-librsvg, but defaults to
using the library if it is present during configure.
When enabled, Openbox will attempt to load svg image files using
the library, similar to how Imlib2 is used for other image
formats.
Since librsvg uses the libXml2 library, their errors end up in
the same global namespace as Openbox config file parsing. To
avoid this, we reset the libXml current error whenever we start
loading a file, and save the last error that occurred when we
are finished, by storing the error in the ObtXmlInst.