GNOME Bugzilla – Bug 707614
legacy tray icons: Add workaround for opaque region issue
Last modified: 2013-09-06 20:37:36 UTC
Yes I know there is a bug filed about this somewhere but I can't find it so filed a new one.
Created attachment 254238 [details] [review] legacy tray icons: Add workaround for opaque region issue Status icons seem to set a wrong opaque region that covers the translucent parts of the icon causing it to be rendered black. So simply remove the opaque region causing them to always blend with the background. While not perfect from a performance pov the icons are small so we are not loosing much by not disabling blending while painting them.
*** Bug 707398 has been marked as a duplicate of this bug. ***
I still have the problem, even with the patch applied.
Created attachment 254249 [details] [review] legacy tray icons: Add workaround for opaque region issue Status icons seem to set a wrong opaque region that covers the translucent parts of the icon causing it to be rendered black. So simply remove the opaque region causing them to always blend with the background. While not perfect from a performance pov the icons are small so we are not loosing much by not disabling blending while painting them. -- Setting it once is not enough we have to reset it to NULL on each allocation.
Created attachment 254297 [details] [review] embedded-window: Set as app-paintable to workaround opaque region issues In specific cases, GTK+ does not have enough information to set a correct opaque region, in which the recommended fix is to set your window as app-paintable. In the tray icon case, the socket window was considered opaque but GTK+ as it had a solid window background, but it cannot have an opaque region set, as the plug isn't composited against the socket, but instead punches through the socket window.
Review of attachment 254297 [details] [review]: OK, this is a cleaner solution and seems to work fine for me. ::: src/shell-embedded-window.c @@ +120,3 @@ */ g_object_set (object, + "app-paintable", TRUE, Maybe you want to add a comment here as well?
Attachment 254297 [details] pushed as 08f9526 - embedded-window: Set as app-paintable to workaround opaque region issues