diff options
Diffstat (limited to 'x11/libXdamage')
-rw-r--r-- | x11/libXdamage/Makefile | 3 | ||||
-rw-r--r-- | x11/libXdamage/distinfo | 3 | ||||
-rw-r--r-- | x11/libXdamage/patches/patch-aa | 33 |
3 files changed, 37 insertions, 2 deletions
diff --git a/x11/libXdamage/Makefile b/x11/libXdamage/Makefile index 06e0d758780..e94b170c5f0 100644 --- a/x11/libXdamage/Makefile +++ b/x11/libXdamage/Makefile @@ -1,7 +1,8 @@ -# $NetBSD: Makefile,v 1.3 2007/03/17 17:43:18 joerg Exp $ +# $NetBSD: Makefile,v 1.4 2008/01/29 03:50:25 bjs Exp $ # DISTNAME= libXdamage-1.1.1 +PKGREVISION= 1 CATEGORIES= x11 devel MASTER_SITES= http://xorg.freedesktop.org/releases/individual/lib/ EXTRACT_SUFX= .tar.bz2 diff --git a/x11/libXdamage/distinfo b/x11/libXdamage/distinfo index 71f0b3eca7d..d4a6f2a66ba 100644 --- a/x11/libXdamage/distinfo +++ b/x11/libXdamage/distinfo @@ -1,5 +1,6 @@ -$NetBSD: distinfo,v 1.3 2007/03/17 17:43:18 joerg Exp $ +$NetBSD: distinfo,v 1.4 2008/01/29 03:50:25 bjs Exp $ SHA1 (libXdamage-1.1.1.tar.bz2) = a88e5a004084400d638ed623e281a6076519a8d0 RMD160 (libXdamage-1.1.1.tar.bz2) = 90de272adbd42113869a8e4d36a51e2e4e576dc9 Size (libXdamage-1.1.1.tar.bz2) = 201096 bytes +SHA1 (patch-aa) = f45851e0cdd665b78e5e712a11c2a838cae272b2 diff --git a/x11/libXdamage/patches/patch-aa b/x11/libXdamage/patches/patch-aa new file mode 100644 index 00000000000..a7f063a122d --- /dev/null +++ b/x11/libXdamage/patches/patch-aa @@ -0,0 +1,33 @@ +$NetBSD: patch-aa,v 1.1 2008/01/29 03:50:26 bjs Exp $ + +libXdamage incorrectly encodes/decodes the 'More' field from the event. + +The client library for xdamage currently fails to fill in the 'more' +field. As a result, you get whatever uninitialised junk was there +before. + +The server sets the high bit of 'level' when there is +'more' (DamageNotifyMore = 0x80). A patch follows to fix the client +library. (from GIT) + +--- src/Xdamage.c.orig 2007-01-09 19:20:57.000000000 -0500 ++++ src/Xdamage.c +@@ -231,7 +231,8 @@ XDamageWireToEvent(Display *dpy, XEvent + aevent->display = dpy; + aevent->drawable = awire->drawable; + aevent->damage = awire->damage; +- aevent->level = awire->level; ++ aevent->level = awire->level & ~DamageNotifyMore; ++ aevent->more = (awire->level & DamageNotifyMore) ? True : False; + aevent->timestamp = awire->timestamp; + aevent->area.x = awire->area.x; + aevent->area.y = awire->area.y; +@@ -264,7 +265,7 @@ XDamageEventToWire(Display *dpy, XEvent + awire->type = aevent->type | (aevent->send_event ? 0x80 : 0); + awire->drawable = aevent->drawable; + awire->damage = aevent->damage; +- awire->level = aevent->level; ++ awire->level = aevent->level | (aevent->more ? DamageNotifyMore : 0); + awire->timestamp = aevent->timestamp; + awire->area.x = aevent->area.x; + awire->area.y = aevent->area.y; |