diff options
author | bjs <bjs> | 2008-01-29 03:50:25 +0000 |
---|---|---|
committer | bjs <bjs> | 2008-01-29 03:50:25 +0000 |
commit | db77895d8ac181778b91ddbfe31a780fbc1e8282 (patch) | |
tree | f165bda5abd5a6716e8b96cf37d298212692f8b8 /x11 | |
parent | f82b17556af15df0fa6d13ef993c0a7590cd5a47 (diff) | |
download | pkgsrc-db77895d8ac181778b91ddbfe31a780fbc1e8282.tar.gz |
Bump rev for patch for this problem (from freedesktop.org GIT):
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.
Diffstat (limited to 'x11')
-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; |