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.
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.
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.
Use the following in your per-app rules:
<size>
<width>A</width>
<height>B</height>
</size>
A and B can be integer values to specify a size in pixels. They can also be
percentages or fractions to be relative to the size of the monitor the window
is placed on.
We want to keep some way for a user to re-decorate the window with the default
bindings. However with a large border width, the top border is much bigger than
it needs to be! So make it fixed at 1px large in this case.
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.
$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>.
We were only doing this if a dialog was showing. But if it's the target, then
a dialog is not relevant, we should always recompute the focus cycling. This
avoids a crash when not using a dialog and closing a window during cycling.