RFC: XEmbed Systray Patches
jrliggett at cox.net
Wed Aug 9 15:30:17 CDT 2006
On Wed, 2006-08-09 at 12:16 +0100, Mike Hearn wrote:
> Ah awesome, good work! I know when I looked at this originally it
> seemed you could set a flag that told the embedder whether it was
> already mapped or not, maybe that doesn't work properly.
It's not that it doesn't work properly. What happened is that the x11drv
maps any visible window, so that and the mapping flag were conflicting
with one another. In order for this to work, the systray window (our
icon) can *never* be mapped by WINE at any point during its life, or the
tray will have problems with it, the extent of which depends on how said
tray implements XEmbed (which explains disparities between the behavior
of GNOME, XFce, and IceWM with the patches.) IOW, the tray has to handle
everything with mapping/unmapping, or you get races.
On that subject, I've found that with some more tests, we're not quite
out of the woods yet. I think the problem now is that WINE wants to map
the window every time the tray becomes visible. I've thought about
handling this in X11DRV_set_window_pos, but I'm not sure of the correct
way to handle it. What we need to do is get the extended style of the
window, but this seems to involve a bunch of wineserver calls that I'm
not familiar with. Can you help me out on that? Thanks!
> There was
> also a problem where a window would dock but only be allocated 1
> pixel, I think that was a bug in GNOME that is now fixed.
I'm not quite sure about that one--I've got an X test app that docks,
but I can only get 1 pixel wide. :( On wine, this isn't a problem
though. Still trying to figure out what I need to do.
More information about the wine-devel