The menu can be attached to a widget or the mouse again, and more
This commit also fix some tasklist/taglist issues and introduce minor
features like item.shape.
There is a new widget called `infoshapes`. It support all the features
from the underlay system, but is a lot less intrusive. This allow to
make some code simpler.
This is another step in getting rid of all the hacks.
Radical is a model-view framework. There is a common API to
set data, then view modules to display it. Those modules have
been rewritten on top of new APIs.
Not all features are yet re-integrated, most are. Future commits
will address the various regressions and missing features. This
time, the code should be maintainable. The whole separation of
concerns analysis has been re-done. Allowing code de-duplication
and generalization.
The API remain the same, only `set_menu` has changed a little to
allow merging the 2 sub-menu code paths.
Lots of things will break, hopefully for the better (eventually)
This commit use new upstream APIs:
* Many cairo paths have been replaced with gears.shape and gears.matrix
This commit add some features:
* Improved border_color support, now available per state
* bg_image support, now available per state
* Mutualize the state setting, remove duplicated code
Regressions:
* The arrow menu background border is off by a pixel
* The layout position problem reported by @mindeunix is now worst.
The positioning algo is full of race conditions and cannot be fixed
without a full rewrite. This commit break more things than it solve
and the code is in the middle of a transition. This will be solved
by future commits addressing the code quality (after the refactoring).