widget layer is below full-screen windows
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
compiz (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: compiz
This is about Compiz running on latest updated Gutsy.
I've tried adding some widgets using Compiz' "widgets layer" plugin and the screenlets package (from an external repository). Unfortunately I've noticed an issue: whenever I have a full-screen window _at the top level_, the widgets are drawn below it (so they're invisible, unless the full-screen window is partly transparent). However, if there is a normal, non-full-screen window above the fullscreen window, the widgets are correctly displayed on top.
Note that the "redirect fullscreen windows" option is disabled on my computer, so they should be normally composited.
I think this is a special-case of bug #153676, but since the widget layer is special I think it deserves separate treatment. That is, no matter when and how we solve the stacking issues of full-screen windows, things in the widget layer should be above everything else when they are enabled.
After taking a look through the code, I think it's not exactly the same thing as bug #153676.
As far as I can tell, the widget plugin uses raiseWindow (from window.c) to put the widgets on top. However, that function then uses findSiblingBelow() with aboveFs=FALSE, which causes the widgets to remain below full-screen windows.
I tested this by modifying raiseWindow(), setting aboveFs=TRUE. This works, in the sense that widgets are correctly rendered above any fullscreen window. Of course, if there was a good reason why raiseWindow sets aboveFs to FALSE (I couldn't find one), this would break it.
Is there a Compiz developer who can tell us if that makes sense?