xorg-server: Changes to 'debian-experimental'
Rebased ref, commits from common ancestor:
commit 14eefa39fc577b0e7611438377a15c5c9a57d3bd
Author: Cyril Brulebois <kibi@debian.org>
Date: Wed Feb 23 13:36:17 2011 +0100
Upload to experimental.
diff --git a/debian/changelog b/debian/changelog
index 44474b2..37d8424 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,11 +1,11 @@
-xorg-server (2:1.9.99.902-3) UNRELEASED; urgency=low
+xorg-server (2:1.9.99.902-3) experimental; urgency=low
* Merge from master up to 93a7399370.
* New patch: 17-fix-ftbfs-on-sparc.diff; let's try it for real before
asking for its being merged upstream.
* Refresh all patches.
- -- Cyril Brulebois <kibi@debian.org> Wed, 23 Feb 2011 12:42:18 +0100
+ -- Cyril Brulebois <kibi@debian.org> Wed, 23 Feb 2011 13:36:13 +0100
xorg-server (2:1.9.99.902-2) experimental; urgency=low
commit 9f41e49ee43df600dbe1e9dd19d41decc7221085
Author: Cyril Brulebois <kibi@debian.org>
Date: Wed Feb 23 13:35:58 2011 +0100
Refresh all patches.
diff --git a/debian/changelog b/debian/changelog
index a5b8dee..44474b2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,7 @@ xorg-server (2:1.9.99.902-3) UNRELEASED; urgency=low
* Merge from master up to 93a7399370.
* New patch: 17-fix-ftbfs-on-sparc.diff; let's try it for real before
asking for its being merged upstream.
+ * Refresh all patches.
-- Cyril Brulebois <kibi@debian.org> Wed, 23 Feb 2011 12:42:18 +0100
diff --git a/debian/patches/02_Add-libnettle-as-option-for-sha1.diff b/debian/patches/02_Add-libnettle-as-option-for-sha1.diff
index 6b2d9af..475bf77 100644
--- a/debian/patches/02_Add-libnettle-as-option-for-sha1.diff
+++ b/debian/patches/02_Add-libnettle-as-option-for-sha1.diff
@@ -10,7 +10,7 @@ Signed-off-by: Julien Cristau <jcristau@debian.org>
---
--- a/configure.ac
+++ b/configure.ac
-@@ -1360,7 +1360,7 @@ CORE_INCS='-I$(top_srcdir)/include -I$(t
+@@ -1356,7 +1356,7 @@ CORE_INCS='-I$(top_srcdir)/include -I$(t
# SHA1 hashing
AC_ARG_WITH([sha1],
@@ -19,7 +19,7 @@ Signed-off-by: Julien Cristau <jcristau@debian.org>
[choose SHA1 implementation])])
AC_CHECK_FUNC([SHA1Init], [HAVE_SHA1_IN_LIBC=yes])
if test "x$with_sha1" = x && test "x$HAVE_SHA1_IN_LIBC" = xyes; then
-@@ -1443,6 +1443,16 @@ if test "x$with_sha1" = xlibcrypto; then
+@@ -1439,6 +1439,16 @@ if test "x$with_sha1" = xlibcrypto; then
SHA1_CFLAGS="$OPENSSL_CFLAGS"
fi
fi
diff --git a/debian/patches/07-xfree86-fix-build-with-xv-disabled.diff b/debian/patches/07-xfree86-fix-build-with-xv-disabled.diff
index cb86e77..b2d3167 100644
--- a/debian/patches/07-xfree86-fix-build-with-xv-disabled.diff
+++ b/debian/patches/07-xfree86-fix-build-with-xv-disabled.diff
@@ -10,7 +10,7 @@ Subject: [PATCH] xfree86: fix build with xv disabled
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
-@@ -3084,6 +3084,7 @@ xf86_crtc_box_area(BoxPtr box)
+@@ -3133,6 +3133,7 @@ xf86_crtc_box_area(BoxPtr box)
return (int) (box->x2 - box->x1) * (int) (box->y2 - box->y1);
}
@@ -18,7 +18,7 @@ Subject: [PATCH] xfree86: fix build with xv disabled
/*
* Return the crtc covering 'box'. If two crtcs cover a portion of
* 'box', then prefer 'desired'. If 'desired' is NULL, then prefer the crtc
-@@ -3172,6 +3173,7 @@ xf86_crtc_clip_video_helper(ScrnInfoPtr
+@@ -3221,6 +3222,7 @@ xf86_crtc_clip_video_helper(ScrnInfoPtr
return ret;
}
@@ -28,7 +28,7 @@ Subject: [PATCH] xfree86: fix build with xv disabled
xf86_wrap_crtc_notify (ScreenPtr screen, xf86_crtc_notify_proc_ptr new)
--- a/hw/xfree86/modes/xf86Crtc.h
+++ b/hw/xfree86/modes/xf86Crtc.h
-@@ -934,6 +934,7 @@ xf86_hide_cursors (ScrnInfoPtr scrn);
+@@ -1037,6 +1037,7 @@ xf86_hide_cursors (ScrnInfoPtr scrn);
extern _X_EXPORT void
xf86_cursors_fini (ScreenPtr screen);
@@ -36,7 +36,7 @@ Subject: [PATCH] xfree86: fix build with xv disabled
/*
* For overlay video, compute the relevant CRTC and
* clip video to that.
-@@ -952,6 +953,7 @@ xf86_crtc_clip_video_helper(ScrnInfoPtr
+@@ -1055,6 +1056,7 @@ xf86_crtc_clip_video_helper(ScrnInfoPtr
RegionPtr reg,
INT32 width,
INT32 height);
diff --git a/debian/patches/15-nouveau.diff b/debian/patches/15-nouveau.diff
index 77bbbc4..712c7ec 100644
--- a/debian/patches/15-nouveau.diff
+++ b/debian/patches/15-nouveau.diff
@@ -12,7 +12,7 @@ Also, don't treat DRI setup failure as an error for nouveau.
--- a/glx/glxdri.c
+++ b/glx/glxdri.c
-@@ -979,6 +979,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
+@@ -978,6 +978,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
const __DRIconfig **driConfigs;
const __DRIextension **extensions;
int i;
@@ -20,7 +20,7 @@ Also, don't treat DRI setup failure as an error for nouveau.
if (!xf86LoaderCheckSymbol("DRIQueryDirectRenderingCapable") ||
!DRIQueryDirectRenderingCapable(pScreen, &isCapable) ||
-@@ -1058,7 +1059,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
+@@ -1057,7 +1058,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
screen->driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL);
if (screen->driver == NULL) {
@@ -31,7 +31,7 @@ Also, don't treat DRI setup failure as an error for nouveau.
filename, dlerror());
goto handle_error;
}
-@@ -1196,7 +1199,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
+@@ -1193,7 +1196,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
free(screen);
@@ -42,7 +42,7 @@ Also, don't treat DRI setup failure as an error for nouveau.
}
--- a/glx/glxdri2.c
+++ b/glx/glxdri2.c
-@@ -709,6 +709,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
+@@ -708,6 +708,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
const __DRIextension **extensions;
const __DRIconfig **driConfigs;
int i;
@@ -50,7 +50,7 @@ Also, don't treat DRI setup failure as an error for nouveau.
screen = calloc(1, sizeof *screen);
if (screen == NULL)
-@@ -735,7 +736,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
+@@ -734,7 +735,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
screen->driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL);
if (screen->driver == NULL) {
@@ -61,7 +61,7 @@ Also, don't treat DRI setup failure as an error for nouveau.
filename, dlerror());
goto handle_error;
}
-@@ -829,7 +832,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
+@@ -826,7 +829,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
free(screen);
@@ -72,7 +72,7 @@ Also, don't treat DRI setup failure as an error for nouveau.
}
--- a/hw/xfree86/common/xf86pciBus.c
+++ b/hw/xfree86/common/xf86pciBus.c
-@@ -1118,7 +1118,24 @@ videoPtrToDriverList(struct pci_device *
+@@ -1123,7 +1123,24 @@ videoPtrToDriverList(struct pci_device *
break;
case 0x102b: driverList[0] = "mga"; break;
case 0x10c8: driverList[0] = "neomagic"; break;
diff --git a/debian/patches/17-fix-ftbfs-on-sparc.diff b/debian/patches/17-fix-ftbfs-on-sparc.diff
index 0d0bac7..897b111 100644
--- a/debian/patches/17-fix-ftbfs-on-sparc.diff
+++ b/debian/patches/17-fix-ftbfs-on-sparc.diff
@@ -21,11 +21,9 @@ Signed-off-by: Cyril Brulebois <kibi@debian.org>
hw/xfree86/common/xf86sbusBus.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
-diff --git a/hw/xfree86/common/xf86sbusBus.c b/hw/xfree86/common/xf86sbusBus.c
-index 8cfac84..181c6ab 100644
--- a/hw/xfree86/common/xf86sbusBus.c
+++ b/hw/xfree86/common/xf86sbusBus.c
-@@ -709,6 +709,6 @@ xf86SbusConfigureNewDev(void *busData, sbusDevicePtr sBus, GDevRec *GDev)
+@@ -709,6 +709,6 @@ xf86SbusConfigureNewDev(void *busData, s
XNFasprintf(&GDev->busID, "SBUS:%s", promPath);
free(promPath);
} else {
@@ -33,6 +31,3 @@ index 8cfac84..181c6ab 100644
+ XNFasprintf(&GDev->busID, "SBUS:fb%d", sBus->fbNum);
}
}
---
-1.7.4.1
-
diff --git a/debian/patches/20-update-gpu-pitch.diff b/debian/patches/20-update-gpu-pitch.diff
index d63a1e9..b2208bf 100644
--- a/debian/patches/20-update-gpu-pitch.diff
+++ b/debian/patches/20-update-gpu-pitch.diff
@@ -1,8 +1,6 @@
-diff --git a/exa/exa_mixed.c b/exa/exa_mixed.c
-index 606f1e1..fd1afb2 100644
--- a/exa/exa_mixed.c
+++ b/exa/exa_mixed.c
-@@ -175,8 +175,10 @@ exaModifyPixmapHeader_mixed(PixmapPtr pPixmap, int width, int height, int depth,
+@@ -175,8 +175,10 @@ exaModifyPixmapHeader_mixed(PixmapPtr pP
depth != pPixmap->drawable.depth ||
bitsPerPixel != pPixmap->drawable.bitsPerPixel) {
if (pExaPixmap->driverPriv) {
@@ -15,7 +13,7 @@ index 606f1e1..fd1afb2 100644
exaSetAccelBlock(pExaScr, pExaPixmap,
width, height, bitsPerPixel);
-@@ -187,8 +189,7 @@ exaModifyPixmapHeader_mixed(PixmapPtr pPixmap, int width, int height, int depth,
+@@ -187,8 +189,7 @@ exaModifyPixmapHeader_mixed(PixmapPtr pP
if (has_gpu_copy && pExaPixmap->sys_ptr) {
free(pExaPixmap->sys_ptr);
pExaPixmap->sys_ptr = NULL;
commit 79aa2ef2720d419692636c0dc1558d35ea4f83c4
Author: Cyril Brulebois <kibi@debian.org>
Date: Wed Feb 23 12:48:13 2011 +0100
New patch: 17-fix-ftbfs-on-sparc.diff; let's try it for real before asking for its being merged upstream.
diff --git a/debian/changelog b/debian/changelog
index 92d5fa0..a5b8dee 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
xorg-server (2:1.9.99.902-3) UNRELEASED; urgency=low
* Merge from master up to 93a7399370.
+ * New patch: 17-fix-ftbfs-on-sparc.diff; let's try it for real before
+ asking for its being merged upstream.
-- Cyril Brulebois <kibi@debian.org> Wed, 23 Feb 2011 12:42:18 +0100
diff --git a/debian/patches/17-fix-ftbfs-on-sparc.diff b/debian/patches/17-fix-ftbfs-on-sparc.diff
new file mode 100644
index 0000000..0d0bac7
--- /dev/null
+++ b/debian/patches/17-fix-ftbfs-on-sparc.diff
@@ -0,0 +1,38 @@
+From a2164a583a4089dd6ae88ec91c570aab7ece4ae8 Mon Sep 17 00:00:00 2001
+From: Cyril Brulebois <kibi@debian.org>
+Date: Sun, 20 Feb 2011 16:26:13 +0100
+Subject: [PATCH] xfree86: Fix undefined reference to `XNFsprintf' on sparc.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Build failure on sparc:
+| copying selected object files to avoid basename conflicts...
+| CCLD Xorg
+| ./.libs/libxorg.a(xf86sbusBus.o): In function `xf86SbusConfigureNewDev':
+| […]/hw/xfree86/common/xf86sbusBus.c:712: undefined reference to `XNFsprintf'
+| collect2: ld returned 1 exit status
+
+Fix typo introduced in:
+ 3a9bb93dd178084f4ff1abcea331ca5a62f88ce6
+
+Signed-off-by: Cyril Brulebois <kibi@debian.org>
+---
+ hw/xfree86/common/xf86sbusBus.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/hw/xfree86/common/xf86sbusBus.c b/hw/xfree86/common/xf86sbusBus.c
+index 8cfac84..181c6ab 100644
+--- a/hw/xfree86/common/xf86sbusBus.c
++++ b/hw/xfree86/common/xf86sbusBus.c
+@@ -709,6 +709,6 @@ xf86SbusConfigureNewDev(void *busData, sbusDevicePtr sBus, GDevRec *GDev)
+ XNFasprintf(&GDev->busID, "SBUS:%s", promPath);
+ free(promPath);
+ } else {
+- XNFsprintf(&GDev->busID, "SBUS:fb%d", sBus->fbNum);
++ XNFasprintf(&GDev->busID, "SBUS:fb%d", sBus->fbNum);
+ }
+ }
+--
+1.7.4.1
+
diff --git a/debian/patches/series b/debian/patches/series
index 9575231..7b03312 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -6,4 +6,5 @@
#13_debian_add_xkbpath_env_variable.diff
15-nouveau.diff
16-oot-build.diff
+17-fix-ftbfs-on-sparc.diff
20-update-gpu-pitch.diff
commit a227fa2c604f5b462291e3eff7017bf0f25bf50b
Author: Cyril Brulebois <kibi@debian.org>
Date: Wed Feb 23 12:43:03 2011 +0100
Bump changelogs.
diff --git a/ChangeLog b/ChangeLog
index 63e2e0e..c2c788e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,48 @@
+commit 93a73993708b1345c86ec3ec06b02ed236595673
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon Feb 21 15:40:40 2011 +1000
+
+ test: write some event → XI1 conversion tests.
+
+ Don't test everything, but hey, life is short and I'm trying to have one.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Reviewed-by: Keith Packard <keithp@keithp.com>
+ Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+
+commit 4cdf1013771bc86fe2f6d9223bc4a46753bc918f
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon Feb 21 15:32:57 2011 +1000
+
+ dix: a valuator number of 0 is valid (#34510)
+
+ For all but motion and proximity events, having no valuators is ok.
+ Regression from 1.9, keyboard events are not converted to protocol events.
+
+ X.Org Bug 34510 <http://bugs.freedesktop.org/show_bug.cgi?id=34510>
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Reviewed-by: Keith Packard <keithp@keithp.com>
+ Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+ Tested-by: Timo Aaltonen <timo.aaltonen@canonical.com>
+
+commit b4ef34d4664e0eaac7211f7a22a2025958aa1527
+Author: Maarten Maathuis <madman2003@gmail.com>
+Date: Sun Feb 20 11:59:41 2011 +0100
+
+ Revert "exa/mixed: Exclude frontbuffer from deferred pixmap handling."
+
+ This reverts commit 541b25038a5de74411a094570b407c5ae018c2ba.
+
+ - It turns out that the high latency was a driver problem.
+ - catting a large amount of text turns out to look prettier when the
+ throughput is lower, but it's not worth the loss for a minor
+ improvement that may not even exist on someone else's computer.
+
+ Reviewed-by: Michel Dänzer <michel@daenzer.net>
+ Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+
commit 443d75446bcbe7d97a23860a1e2d46c0b7e7cb26
Author: Keith Packard <keithp@keithp.com>
Date: Fri Feb 18 14:46:33 2011 -0800
diff --git a/debian/changelog b/debian/changelog
index 0d5bd6f..92d5fa0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xorg-server (2:1.9.99.902-3) UNRELEASED; urgency=low
+
+ * Merge from master up to 93a7399370.
+
+ -- Cyril Brulebois <kibi@debian.org> Wed, 23 Feb 2011 12:42:18 +0100
+
xorg-server (2:1.9.99.902-2) experimental; urgency=low
* Bump dependency on x11proto-randr-dev, needed since xorg-server.pc
commit 93a73993708b1345c86ec3ec06b02ed236595673
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Mon Feb 21 15:40:40 2011 +1000
test: write some event → XI1 conversion tests.
Don't test everything, but hey, life is short and I'm trying to have one.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
diff --git a/test/input.c b/test/input.c
index 879e14f..e0e9e6a 100644
--- a/test/input.c
+++ b/test/input.c
@@ -36,6 +36,7 @@
#include "inputstr.h"
#include "eventconvert.h"
#include "exevents.h"
+#include "exglobals.h"
#include "dixgrabs.h"
#include "eventstr.h"
#include "inpututils.h"
@@ -285,6 +286,143 @@ static void dix_event_to_core_conversion(void)
dix_event_to_core(ET_Motion);
}
+static void
+_dix_test_xi_convert(DeviceEvent *ev, int expected_rc, int expected_count)
+{
+ xEvent *xi;
+ int count = 0;
+ int rc;
+
+ rc = EventToXI((InternalEvent*)ev, &xi, &count);
+ g_assert(rc == expected_rc);
+ g_assert(count >= expected_count);
+ if (count > 0){
+ deviceKeyButtonPointer *kbp = (deviceKeyButtonPointer*)xi;
+ g_assert(kbp->type == IEventBase + ev->type);
+ g_assert(kbp->detail == ev->detail.key);
+ g_assert(kbp->time == ev->time);
+ g_assert((kbp->deviceid & ~MORE_EVENTS) == ev->deviceid);
+ g_assert(kbp->root_x == ev->root_x);
+ g_assert(kbp->root_y == ev->root_y);
+ g_assert(kbp->state == ev->corestate);
+ g_assert(kbp->event_x == 0);
+ g_assert(kbp->event_y == 0);
+ g_assert(kbp->root == ev->root);
+ g_assert(kbp->event == 0);
+ g_assert(kbp->child == 0);
+ g_assert(kbp->same_screen == FALSE);
+
+ while (--count > 0) {
+ deviceValuator *v = (deviceValuator*)&xi[count];
+ g_assert(v->type == DeviceValuator);
+ g_assert(v->num_valuators <= 6);
+ }
+
+
+ free(xi);
+ }
+}
+
+/**
+ * This tests for internal event → XI1 event conversion
+ * - all conversions should generate the right XI event type
+ * - right number of events generated
+ * - extra events are valuators
+ */
+static void dix_event_to_xi1_conversion(void)
+{
+ DeviceEvent ev = {0};
+ int time;
+ int x, y;
+ int state;
+ int detail;
+ const int ROOT_WINDOW_ID = 0x100;
+ int deviceid;
+
+ IEventBase = 80;
+ DeviceValuator = IEventBase - 1;
+ DeviceKeyPress = IEventBase + ET_KeyPress;
+ DeviceKeyRelease = IEventBase + ET_KeyRelease;
+ DeviceButtonPress = IEventBase + ET_ButtonPress;
+ DeviceButtonRelease = IEventBase + ET_ButtonRelease;
+ DeviceMotionNotify = IEventBase + ET_Motion;
+ DeviceFocusIn = IEventBase + ET_FocusIn;
+ DeviceFocusOut = IEventBase + ET_FocusOut;
+ ProximityIn = IEventBase + ET_ProximityIn;
+ ProximityOut = IEventBase + ET_ProximityOut;
+
+ /* EventToXI callocs */
+ x = 0;
+ y = 0;
+ time = 12345;
+ state = 0;
+ detail = 0;
+ deviceid = 4;
+
+ ev.header = 0xFF;
+
+ ev.header = 0xFF;
+ ev.length = sizeof(DeviceEvent);
+ ev.time = time;
+ ev.root_y = x;
+ ev.root_x = y;
+ SetBit(ev.valuators.mask, 0);
+ SetBit(ev.valuators.mask, 1);
+ ev.root = ROOT_WINDOW_ID;
+ ev.corestate = state;
+ ev.detail.key = detail;
+ ev.deviceid = deviceid;
+
+ /* test all types for bad match */
+ ev.type = ET_KeyPress; _dix_test_xi_convert(&ev, Success, 1);
+ ev.type = ET_KeyRelease; _dix_test_xi_convert(&ev, Success, 1);
+ ev.type = ET_ButtonPress; _dix_test_xi_convert(&ev, Success, 1);
+ ev.type = ET_ButtonRelease; _dix_test_xi_convert(&ev, Success, 1);
+ ev.type = ET_Motion; _dix_test_xi_convert(&ev, Success, 1);
+ ev.type = ET_ProximityIn; _dix_test_xi_convert(&ev, Success, 1);
+ ev.type = ET_ProximityOut; _dix_test_xi_convert(&ev, Success, 1);
+
+ /* No axes */
+ ClearBit(ev.valuators.mask, 0);
+ ClearBit(ev.valuators.mask, 1);
+ ev.type = ET_KeyPress; _dix_test_xi_convert(&ev, Success, 1);
+ ev.type = ET_KeyRelease; _dix_test_xi_convert(&ev, Success, 1);
+ ev.type = ET_ButtonPress; _dix_test_xi_convert(&ev, Success, 1);
+ ev.type = ET_ButtonRelease; _dix_test_xi_convert(&ev, Success, 1);
+ ev.type = ET_Motion; _dix_test_xi_convert(&ev, BadMatch, 0);
+ ev.type = ET_ProximityIn; _dix_test_xi_convert(&ev, BadMatch, 0);
+ ev.type = ET_ProximityOut; _dix_test_xi_convert(&ev, BadMatch, 0);
+
+ /* more than 6 axes → 2 valuator events */
+ SetBit(ev.valuators.mask, 0);
+ SetBit(ev.valuators.mask, 1);
+ SetBit(ev.valuators.mask, 2);
+ SetBit(ev.valuators.mask, 3);
+ SetBit(ev.valuators.mask, 4);
+ SetBit(ev.valuators.mask, 5);
+ SetBit(ev.valuators.mask, 6);
+ ev.type = ET_KeyPress; _dix_test_xi_convert(&ev, Success, 2);
+ ev.type = ET_KeyRelease; _dix_test_xi_convert(&ev, Success, 2);
+ ev.type = ET_ButtonPress; _dix_test_xi_convert(&ev, Success, 2);
+ ev.type = ET_ButtonRelease; _dix_test_xi_convert(&ev, Success, 2);
+ ev.type = ET_Motion; _dix_test_xi_convert(&ev, Success, 2);
+ ev.type = ET_ProximityIn; _dix_test_xi_convert(&ev, Success, 2);
+ ev.type = ET_ProximityOut; _dix_test_xi_convert(&ev, Success, 2);
+
+
+ /* keycode too high */
+ ev.type = ET_KeyPress;
+ ev.detail.key = 256;
+ _dix_test_xi_convert(&ev, Success, 0);
+
+ /* deviceid too high */
+ ev.type = ET_KeyPress;
+ ev.detail.key = 18;
+ ev.deviceid = 128;
+ _dix_test_xi_convert(&ev, Success, 0);
+}
+
+
static void xi2_struct_sizes(void)
{
#define compare(req) \
@@ -1070,6 +1208,7 @@ int main(int argc, char** argv)
g_test_add_func("/dix/input/attributes", dix_input_attributes);
g_test_add_func("/dix/input/init-valuators", dix_init_valuators);
g_test_add_func("/dix/input/event-core-conversion", dix_event_to_core_conversion);
+ g_test_add_func("/dix/input/event-xi1-conversion", dix_event_to_xi1_conversion);
g_test_add_func("/dix/input/check-grab-values", dix_check_grab_values);
g_test_add_func("/dix/input/xi2-struct-sizes", xi2_struct_sizes);
g_test_add_func("/dix/input/grab_matching", dix_grab_matching);
commit 4cdf1013771bc86fe2f6d9223bc4a46753bc918f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Mon Feb 21 15:32:57 2011 +1000
dix: a valuator number of 0 is valid (#34510)
For all but motion and proximity events, having no valuators is ok.
Regression from 1.9, keyboard events are not converted to protocol events.
X.Org Bug 34510 <http://bugs.freedesktop.org/show_bug.cgi?id=34510>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
Tested-by: Timo Aaltonen <timo.aaltonen@canonical.com>
diff --git a/dix/eventconvert.c b/dix/eventconvert.c
index 7b894f0..dd1ca46 100644
--- a/dix/eventconvert.c
+++ b/dix/eventconvert.c
@@ -263,8 +263,20 @@ eventToKeyButtonPointer(DeviceEvent *ev, xEvent **xi, int *count)
num_events = (countValuators(ev, &first) + 5)/6; /* valuator ev */
if (num_events <= 0)
{
- *count = 0;
- return BadMatch;
+ switch (ev->type)
+ {
+ case ET_KeyPress:
+ case ET_KeyRelease:
+ case ET_ButtonPress:
+ case ET_ButtonRelease:
+ /* no axes is ok */
+ break;
+ case ET_Motion:
+ case ET_ProximityIn:
+ case ET_ProximityOut:
+ *count = 0;
+ return BadMatch;
+ }
}
num_events++; /* the actual event event */
commit b4ef34d4664e0eaac7211f7a22a2025958aa1527
Author: Maarten Maathuis <madman2003@gmail.com>
Date: Sun Feb 20 11:59:41 2011 +0100
Revert "exa/mixed: Exclude frontbuffer from deferred pixmap handling."
This reverts commit 541b25038a5de74411a094570b407c5ae018c2ba.
- It turns out that the high latency was a driver problem.
- catting a large amount of text turns out to look prettier when the
throughput is lower, but it's not worth the loss for a minor
improvement that may not even exist on someone else's computer.
Reviewed-by: Michel Dänzer <michel@daenzer.net>
Signed-off-by: Maarten Maathuis <madman2003@gmail.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
diff --git a/exa/exa_migration_mixed.c b/exa/exa_migration_mixed.c
index 4f49905..fb47151 100644
--- a/exa/exa_migration_mixed.c
+++ b/exa/exa_migration_mixed.c
@@ -138,7 +138,6 @@ void
exaDamageReport_mixed(DamagePtr pDamage, RegionPtr pRegion, void *closure)
{
PixmapPtr pPixmap = closure;
- ScreenPtr pScreen = pPixmap->drawable.pScreen;
ExaPixmapPriv(pPixmap);
/* Move back results of software rendering on system memory copy of mixed driver
@@ -150,18 +149,10 @@ exaDamageReport_mixed(DamagePtr pDamage, RegionPtr pRegion, void *closure)
if (!pExaPixmap->use_gpu_copy && exaPixmapHasGpuCopy(pPixmap)) {
ExaScreenPriv(pPixmap->drawable.pScreen);
- /* Front buffer: Don't wait for the block handler to copy back the data.
- * This avoids annoying latency if you encounter a lot of software rendering.
- */
- if (pPixmap == pScreen->GetScreenPixmap(pScreen))
- exaMoveInPixmap_mixed(pPixmap);
- else {
- if (pExaScr->deferred_mixed_pixmap &&
- pExaScr->deferred_mixed_pixmap != pPixmap)
- exaMoveInPixmap_mixed(pExaScr->deferred_mixed_pixmap);
-
- pExaScr->deferred_mixed_pixmap = pPixmap;
- }
+ if (pExaScr->deferred_mixed_pixmap &&
+ pExaScr->deferred_mixed_pixmap != pPixmap)
+ exaMoveInPixmap_mixed(pExaScr->deferred_mixed_pixmap);
+ pExaScr->deferred_mixed_pixmap = pPixmap;
}
}
Reply to: