-
-
Notifications
You must be signed in to change notification settings - Fork 723
Description
This is a collection issue for any tray icon rendering problems in the new tray module.
With #2609 being merged, the tray module gets an overhauled rendering that should fix many problems.
However, there are some issues that remain.
For me, I mainly notice this with the dropbox tray icon:
The icon should take on the same background as the bar (red), but instead just has a completely different color.
In practice the icon just uses arbitrary data for its background, often images rendered before (e.g. bar contents).
I have not been able to figure out why this is happening, there don't seem to be any obvious issues on our side.
I am starting to suspect that the dropbox application itself (which is responsible for rendering the icon) actually draws the background this way for some reason.
If you are using the tray module and experience similar rendering issues, please report them here.
Please also include a screenshot, the name of the application, and your polybar version (polybar -v).
Offending applications:
- dropbox
Related Issues
- Systray rendering problems #1603
- Tray icon transparency problem #854
- Repaint issues in the tray area #1143
- Wrong icons displayed in the tray #794
- System tray icons are incorrectly drawn when org.gnome.desktop.interface scaling-factor is not 1 #525
Developer info (Click to expand)
I have also tested out how other applications deal with the dropbox icon:
- i3bar: No transparency, otherwise seems to work, but can't handle changes of bar background without restarting i3bar
- stalonetray, trayer: Seems to work, but can't handle wallpaper change if using transparency
- tint2: Wrong background regardless of transparency
No other implementation can deal with changing the icon background dynamically.
In addition, most trays struggle to get a correct background.
Stalonetray seems to have some special handling for WM_NORMAL_HINTS and before clearing the tray icon, it sets the visibility to VisibilityFullyObscured and then VisibilityUnobscured.
