Opened 2 years ago
Closed 2 years ago
#127 closed defect (implemented)
tray icons: fix the 'black hole'
| Reported by: | joanna | Owned by: | smoku |
|---|---|---|---|
| Priority: | critical | Milestone: | Release 1 Beta 1 |
| Component: | gui-virtualization | Keywords: | |
| Cc: | smoku |
Description
We should really use the tray's background instead of the _ugly_ black background for displaying tray icons from AppVMs!
Change History (12)
comment:1 Changed 2 years ago by joanna
- Owner changed from rafal to smoku
- Status changed from new to assigned
comment:2 Changed 2 years ago by smoku
- Status changed from assigned to accepted
comment:3 Changed 2 years ago by smoku
- Status changed from accepted to assigned
comment:4 Changed 2 years ago by smoku
- Status changed from assigned to accepted
comment:5 Changed 2 years ago by smoku
- Resolution set to fixed
- Status changed from accepted to closed
comment:6 Changed 2 years ago by joanna
- Priority changed from major to critical
- Resolution fixed deleted
- Status changed from closed to reopened
I have never wished to set the icon's background to the VM color (I said we could repain the icon in "grayscale" colored to the VM color) -- this not only looks bad, but is also insecure, as the AppVM controls the background!
comment:7 Changed 2 years ago by joanna
If nothing better was possible, we could just set the bgd of the parent (root) window to white. And still draw the frame in Dom0 around the icon using the VM.color.
comment:8 Changed 2 years ago by joanna
Set bgd to white in the VM. I think white is the safefest color, assuring most icons would just look good. Or some light gray.
comment:9 Changed 2 years ago by joanna
Actually the tray icon (as of v1.2.1) is transparent to _Dom0_ root window, not to VM root window. I.e. if I move a window in Dom0 beneath the tray, I can see it through the icon's bgd.
comment:10 Changed 2 years ago by marmarek
- Owner changed from smoku to marmarek
- Status changed from reopened to assigned
comment:11 Changed 2 years ago by smoku
- Owner changed from marmarek to smoku
- Status changed from assigned to accepted
comment:12 Changed 2 years ago by smoku
- Resolution set to implemented
- Status changed from accepted to closed
White tray and vm background implemented in: http://git.qubes-os.org/?p=smoku/gui;a=commit;h=329128f313738c42c5a7a21638c13855cff7b23a

Implemented in: http://git.qubes-os.org/?p=smoku/gui;a=commit;h=35647b9eb54c689e81aa5b9bdd4ab60fc1de41d2
Some comments though:
I do not have full alpha channel available. I do not even have any transparency info. So I assume that the color of the top-left pixel of the tray icon is a transparent color, then generate transparency mask accordingly.
It creates an issue with alpha blended (antialiased) icons. They are blended to vmside root window, which is black. This creates even more ugly "shadow" around the icon.
My idea to mitigate it is:
This blends the icon to the color of the VM and paints on the same color background, which does not look ugly.