> "Kirill K. Smirnov" <[EMAIL PROTECTED]> writes: > > diff --git a/dlls/winex11.drv/winex11.drv.spec > > b/dlls/winex11.drv/winex11.drv.spec index 36b83d7..126cbc5 100644 > > --- a/dlls/winex11.drv/winex11.drv.spec > > +++ b/dlls/winex11.drv/winex11.drv.spec > > @@ -130,6 +130,7 @@ # Desktop > > > > # System tray > > @ cdecl wine_make_systray_window(long) X11DRV_make_systray_window > > +@ cdecl wine_systray_window_clear(long) X11DRV_systray_window_clear > > We don't want to export such a specific function. Besides, it should > really be setting the window shape.
Do I understand you correct that we should cut off transparent parts of icon, thus making window shape to match solid part of icon? Taking into account that almost every xembed-systray-aware application uses ParentRelative attribute (and KDE developers assumes this as I noticed at bug #3534), the idea of changing window shape sounds really strange. 1) Is there any strong reason why we really must change windows shape to achieve visual transparency? 2) Will it be better to stop embedding wine windows in favor of embedding pure X windows (like other apps do)? This way assumes implementing all xembed-specific stuff at winex11.drv side and exporting ONLY ONE function like wine_xembed_systray_handler(int cmd, void *data), which converts windows icon to X11 icon, creates X11 window with ParentRelative bkgrnd and embeds it. Explorer will use this function when it adds/removes icon to/from system tray. Also, this function will detect the case of wine virtual desktop and notify explorer to stop using xembed. I'm just not sure that this way will not break relaying mouse events. -- Kirill