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
The problem is that WindowNavigation assumes all windows are navigable, and
it was getting confused by decorations. With a bit of work, we can
decorate windows *after* combining layouts just fine.
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.
As I said in order to have a CombinedLayout type instace of
LayoutClass and a class for easily writing pure and impure combinators
to be feeded to the CombinedLayout together with the layouts to be
conbined, there's seems to be the need to change the type of the
LayoutClass.description method from l a -> String to l a -> X String.
Without that "ugly" change - loosing the purity of the description
(please note the *every* methods of that class unless description
operates in the X monad) - I'm plainly unable to write something
really useful and maintainable. If someone can point me in the right
direction I would really really appreciate.
Since, in the meantime, PerWorkspace, which has its users, is broken
and I broke it, I'm reverting it to it supposedly more beautiful
PerWorkspac [WorkspaceId] (Maybe Bool) (l1 a) (l2 a) type.