summaryrefslogtreecommitdiff
path: root/x11/libXdamage
diff options
context:
space:
mode:
authorbjs <bjs>2008-01-29 03:50:25 +0000
committerbjs <bjs>2008-01-29 03:50:25 +0000
commitdb77895d8ac181778b91ddbfe31a780fbc1e8282 (patch)
treef165bda5abd5a6716e8b96cf37d298212692f8b8 /x11/libXdamage
parentf82b17556af15df0fa6d13ef993c0a7590cd5a47 (diff)
downloadpkgsrc-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/libXdamage')
-rw-r--r--x11/libXdamage/Makefile3
-rw-r--r--x11/libXdamage/distinfo3
-rw-r--r--x11/libXdamage/patches/patch-aa33
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;