http://bugs.winehq.org/show_bug.cgi?id=3534
------- Additional Comments From lich@math.spbu.ru 2007-28-06 02:57 -------
Since the whole WS_EX_TRAYWINDOW style is a big fat smelly hack and we are all using it wouldnt it be better to have a nice proper looking 'big fat smelly hack' instead of gray turd?
WS_EX_TRAYWINDOW is a very special case to handle - e.g. every time we need to repaint window Xlib XClearWindow must be used, not WINAPI RepaintWindow. To achieve this I hacked SetIcon function. This is the nicest way I found, but it may not look nice.
Also problems with desktop and unmanaged mode. And there are other cases which I cannot ever imagine.
IMO if we want "to have a nice proper looking 'big fat smelly hack' instead of gray turd" we should reengineer systray:
1) Check desktop mode and do not use systray in this case. 2) Add balloon messages support 3) Add ability to show/hide icons (There are applications which does not change icon, but have a set of icons. To change icon app hides active and shows other icon. Currently all icons are visible.) 4) Implement icons for systray_adaptor window. (I want to see the app icon in KDE systray options, not generic wine icon.) 5) Implement transparency via ParentRelative
As I see, every of these cases need to communicate with X directly. So, winex11.drv will be hacked in many places. If we move almost all hacks to separate file, will it be acceptable?
What about full XEMBED support, it is more generic and much more accurate to develop within wine. Yes, hacks like WS_EX_.... will be present, but in this case it will be called WS_EX_XEMBED which sounds profound [ ;-)] and more generic.