GNOME Bugzilla – Bug 582653
notification area tooltips appear under shell panel
Last modified: 2010-10-16 21:13:29 UTC
When a notification area icon displays a tooltip it appears beneath the panel.
Created attachment 134658 [details] screenshot
*** Bug 583369 has been marked as a duplicate of this bug. ***
The issue is that the panel is drawn in a separate layer from the composited windows, and the code assumes there will not be partial overlap; either the window completely overlaps the panel (fullscreen mode), or it doesn't overlap at all. There are actually two connected problems (whose pixels get drawn there and who receives clicks there). The solution that is most in line with what we are currently doing would be to update the stage_input_mask-handling code to subtract out the shape of the overlapping window, and additionally clip the chrome layer to the shape of the stage input mask so that the drawing works correctly too. (We'll assume for the moment that you aren't going to have shaped windows overlapping the panel...) An alternative solution would be to move the chrome layer into window_group and stack it appropriately based on the other windows. Then we wouldn't have to do any clipping to make it draw correctly, though we'd still have to fiddle with the input mask manually. I remember we talked about doing this when fixing bug 571827, but I don't remember if there was any particular reason we decided against it, or if it just turned out to be easier the other way. Another possibility is to make mutter itself more friendly to the idea of having an arbitrary stacking of composited windows and mutter-internal ClutterActors. From what I understand of mutter's event processing, this might involve creating InputOnly Windows for all actors that aren't MutterWindows, ensuring that the X and Clutter stacking stay in sync, and arranging for events from the InputOnly windows to be translated to ClutterEvents in the correct actors.
*** Bug 591838 has been marked as a duplicate of this bug. ***
*** Bug 592757 has been marked as a duplicate of this bug. ***
Owen, any thoughts on fixing this?
Though the mutter-moblin situation is bit different, my 2p contribution, for what it is worth, is that trying to show an actor that represents an X-based element in a different layer than the window_group, and get it work reliably is a real pain. In mutter-moblin I have now moved bits of the chrome (like the lowlighting) into the window group, and manage their stacking using MetaScreen::restacked signal, so as to take as much advantage of Mutter dealing with the stacking issues as possible.
*** Bug 611379 has been marked as a duplicate of this bug. ***
This is solved by not using tooltips or status icons.