- fix a bug reported by Roman Cheplyaka: when decorate returned
Nothing the window was never going to be created, even if decorate
was reporting a Just Rectangle in the next run. Quite a deep issue,
still visible only with TabbedDecoration at the present time.
- remove decorateFirst (decorate has enough information to decide
whether a window is the first one or not, am I right, David?)
- some point free.
With this patch Decoration will first generate a rectangle and only if
there is a rectangle available a window will be created.
This makes the Decoration state a bit more difficult to process, but
should reduce resource consumption.
This patch includes several changes, which are strictly related and
cannot be recorded separately:
- remove Decoraion.isDecoartion and introduce Decoration.isInStack
(with the related change to LayoutHints)
- in Decoration introduce useful utilities: isVisible, isInvisible,
isWithin and lookFor'
- MouseResize: - invisible inputOnly windows will not be created;
- fix a bug in the read instance which caused a failure
in the state deserialization.
- since mouse resize is not related to decoration, I removed the code
from here. Mouse resize will be handled by a separated layout
modifier (in a separated module)
- now also stacked decoration will be removed (I separated insert_dwr
from remove_stacked)
- moved decoEventHook to decorationEventHook
- added decorationMouseFocusHook, decorationMouseDragHook,
decorationMouseResizeHook methods
- added a handleMouseFocusDrag to focus and drag a window (which makes
it possible to focus *and* drag unfocused windows too
Note that this patch doesn't work with
Thu Dec 27 03:03:56 EST 2007 Spencer Janssen <sjanssen@cse.unl.edu>
* Broadcast button events to all layouts, fix for issue #111
but this isn't a regression, since button events have never worked with
tabbed and this change.