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.
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 98b02c6b60 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.
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.
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.
obrender broke backward compatibility by changing the layout of the
theme structure.
obt broke backward compatibility by changing the method signature of
some keyboard methods.
Both libraries added some new methods as well.