Patch to improve shaping and border rendering in uncomposited environment; add RGBA support for composited

Bug #136660 reported by Alexander Jones
4
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_theme.patch

Enjoy!

ProblemType: Bug
Architecture: i386
Date: Sat Sep 1 23:00:35 2007
DistroRelease: Ubuntu 7.10
Package: notification-daemon 0.3.7-1ubuntu7
PackageArchitecture: i386
SourcePackage: notification-daemon
Uname: Linux flash 2.6.22-10-generic #1 SMP Wed Aug 22 08:11:52 GMT 2007 i686 GNU/Linux

Tags: apport-bug
Revision history for this message
Alexander Jones (alex-weej) wrote :
Revision history for this message
Alexander Jones (alex-weej) wrote :
Revision history for this message
Alexander Jones (alex-weej) wrote :
Revision history for this message
Alexander Jones (alex-weej) wrote :
Revision history for this message
Alexander Jones (alex-weej) wrote :
Revision history for this message
Alexander Jones (alex-weej) wrote :
Revision history for this message
Alexander Jones (alex-weej) wrote :

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!

Revision history for this message
Chris Halse Rogers (raof) wrote :

The screenshots look good, thanks for your work! It looks like a fairly big patch, but I'm not (yet) familiar with the code. I'll try & look at integrating this with our packages. Looks good!

Revision history for this message
Alexander Jones (alex-weej) wrote :

The actual changes I did aren't as big as the patch. The patch is a patch on a patch... if that makes sense. :)

Revision history for this message
Alexander Jones (alex-weej) wrote :
Revision history for this message
Alexander Jones (alex-weej) wrote :
Revision history for this message
Michael Vogt (mvo) wrote :

notification-daemon (0.3.7-1ubuntu8) gutsy; urgency=low

  * 01_ubuntu_theme.patch:
    - improve shaping (LP: #136660)
  * 05_notification_spacing.patch:
    - add a small spacing between two notifications (LP: #137095)
  (Thanks to Alex Jones)

 -- Michael Vogt <email address hidden> Thu, 06 Sep 2007 18:43:01 +0200

Changed in notification-daemon:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.