[xmonad] decoration status update

Andrea Rossato andrea.rossato at unibz.it
Mon Feb 18 11:29:50 EST 2008


today I pushed some final patches to the new decoration framework:

- I adopted a more sophisticated approach for MouseResize: this way we
  can eliminate some restacking issues. Basically, we create the
  inputOnly window for intercepting mouse button events only if this
  input window will be actually visible;

- the above also means that now we have the code to see if a window's
  rectangle is contained by a rectangle of another window:
  Decoration.isVisible :: Rectangle -> [Rectangle] -> Bool (see also
  isInvisible and isWithin);

- Decoration styles will not decorate windows that are not managed
  (that is to say, that are not in the windows Stack): this means that
  you can decorate a decorated layout (see below);

- I created a new style, TarBarDecoration, which can add a tabbed like
  decoration to any layout. The layout may be a combined layout too. A
  few examples:

  decoration shrinkText defaultTheme (TabBar Top) (resizeVertical 20 (Tall 1 (2/100) (1/2) */* simpleFloat))
  which means:
  tabBar shrinkText defaultTheme Top (resizeVertical 20 (Tall 1 (2/100) (1/2) */* simpleFloat)
  will produce:

  (Tall 1 (2/100) (1/2) */* decoration shrinkText defaultTheme (TabBar Top) (resizeVertical 20 (Tall 1 (2/100) (1/2) *|* simpleFloat)))
  which means
  (Tall 1 (2/100) (1/2) */*  simpleTabBar (resizeVertical 20 (Tall 1 (2/100) (1/2) *|* simpleFloat)))
  will produce:

DragPane may still have some issues (and so combinators like *||*). I
need to check.

I think that the decoration stuff is now working as expected. A few
issues, and a few new ideas, are waiting for some new code, but I
think we should be there. Please let me know if you think something
really important is missing, otherwise we can start thinking about
stabilizing everything for the release to come.

Hope you'll enjoy.


More information about the xmonad mailing list