In case you wanted to boring technical details on the topic: >From the ICCCM:
http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.10 """ If the window will be visible for a very short time and should not be decorated at all, the client can set override-redirect on the window. In general, this should be done only if the pointer is grabbed while the window is mapped. The window manager will never interfere with these windows, which should be used with caution. An example of an appropriate use is a pop-up menu. """ >From GTK, when creating a popup, it sets the GDK type to: GDK_WINDOW_TEMP >From GDK, when handling this window type: if (private->window_type == GDK_WINDOW_TEMP) { xattributes.save_under = True; xattributes.override_redirect = True; xattributes.cursor = None; xattributes_mask |= CWSaveUnder | CWOverrideRedirect; My understanding is that the window manager will never see these windows, as it ignores the window managers SubstructureRedirectMask. This is the reason popups actually work correctly and are put exactly where you ask them to be put, the window manager doesn't even get a chance to see them. The other solution it sounded like you were saying is to try to create a normal window, but asking the window manager to position it exactly how you want and without decorations. I don't believe this works in practice with a lot of window managers (tiling, etc). These are hints, and I believe they very often go ignored. It seems the only real solution would be to use a popup, but to manually go to X and manage the stacking order, if this is even possible. I think the best thing to do is to make it a child window of the WebContents, and we can position it within the contents exactly where we want it. It will never extend outside of our top level window, but I think that's ok. I wonder if the situation is at all similar on Mac. On Fri, Mar 13, 2009 at 1:02 PM, Dean McNamee <[email protected]> wrote: > Hey Darin, > > I'm a bit familiar with this problem. From what I understand, the > window manager doesn't get a chance to handle popup windows. The > problem we have with the status bubble now, is if chrome is not on top > (it's behind some other window), and you mouse over a link, our status > bubble popup comes up over the window in front, since a popup wants to > be topmost. > > We would probably have to try to manage the stacking order ourselves, > since the window manager can't help with this situation. I personally > think what Evan is proposing is simpler and good enough, additionally > Linux users aren't going to expect this behavior of things moving > outside the main window. It's nice on Windows, but I don't really > think it's worth the work on Linux. > > On Thu, Mar 12, 2009 at 10:40 PM, Evan Martin <[email protected]> wrote: >> >> On Thu, Mar 12, 2009 at 2:34 PM, Darin Fisher <[email protected]> wrote: >>> I see... there has to be a way with window manager hints to make this work >>> :-) >> >> I hope so, too. I played around with it for a while in a test app, >> and then decided that doing it Right was going to be a lot of effort >> and I'd be better off fixing gaping holes than polishing this. I made >> it extra-ugly just so nobody would take it too seriously. >> >> We might be getting a 20% who's written a window manager before; I was >> trying to interest him in this problem as a starter project. >> >> >> >> > --~--~---------~--~----~------------~-------~--~----~ Chromium Developers mailing list: [email protected] View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~----------~----~----~----~------~----~------~--~---
