Patch to improve shaping and border rendering in uncomposited environment; add RGBA support for composited
Bug #136660 reported by
Alexander Jones
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
notification-daemon (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: notification-daemon
Here's a new 01_ubuntu_
Enjoy!
ProblemType: Bug
Architecture: i386
Date: Sat Sep 1 23:00:35 2007
DistroRelease: Ubuntu 7.10
Package: notification-daemon 0.3.7-1ubuntu7
PackageArchitec
SourcePackage: notification-daemon
Uname: Linux flash 2.6.22-10-generic #1 SMP Wed Aug 22 08:11:52 GMT 2007 i686 GNU/Linux
Related branches
To post a comment you must log in.
What I did:
The draw_rounded_window method was being used to make a path for the yellow background, this was unnecessary. I dropped it and flood filled the background with yellow.
The draw_rounded_window method was being called with some offsets to sketch out the path for an inside stroke. The arrow's anchoring point would not be adjusted. As a result, the stroke was wrong on the arrow, and the stroke sort of tilts on the top edge of any notification with arrows. It's a sucky way of doing an inside stroke anyway given that the outside edge may or may not be bilevel. (You can see bits of grey (background) creeping outside of the stroke in the corners of the old renderings.) I solved this by removing the offset and stroking with 2 pixels instead of 1. This creates a 1 pixel inside stroke and a 1 pixel outside stroke. The outside stroke is removed in one of two ways:
If the window is composited, it then applies an alpha mask of the outline shape using Cairo's DEST_IN operator. The bilevel mask is then used for input shaping only.
If the window is not composited, the bilevel mask is used for input and visual shaping, meaning that effectively the outside edge of the strokes is non-antialiased while the inside edge is.
Hurrah!