systray [2]: transparent icons: let systray window responsible for background

Kirill K. Smirnov lich at math.spbu.ru
Tue Jan 2 08:17:06 CST 2007


> "Kirill K. Smirnov" <lich at math.spbu.ru> writes:
> 
> > @@ -366,6 +366,7 @@ static void systray_dock_window( Display
> >          
> >          wine_tsx11_lock();
> >          XSendEvent( display, systray_window, False, NoEventMask, 
&ev );
> > +        XSetWindowBackgroundPixmap(display, data->whole_window, 
ParentRelative);
> >          wine_tsx11_unlock();
> 
> This won't really do what you want. You have to set the window shape
> if you want the background to be properly transparent.

Now I understand, that the problem is more hard than I think before.

1) The code I sent is the solution... unless the application change 
icon. In this case new icon is painted over and produces a mixture.

2) If I set window shape to 'AND' bitmap of icon (do I correctly 
understand you?) then what to do with full transparent icons? E.g. some 
applications (qip) flashes the icons by changing the icon with full 
transparent icon and back.
 a) Will window with NULL shape be created?
 b) if a) is true, then when I click on null icon will I get any events?


For some time I wonder, why kde icons looks good even when they are 
changing??? The answer is kde applications use KSystemTray directly 
without XEMBED.

xmule to achieve the same goal, removes the icon from systray and adds 
new one (as I understand it, I may wrong). Shall we use the same 
mechanism?

Any other suggestion?



More information about the wine-devel mailing list