ChangeLog | 42 +++++++++++++++++++++++++++++++++++++ Xi/exevents.c | 20 ++++++++--------- Xi/xiproperty.c | 2 - configure.ac | 2 - debian/changelog | 7 ++++++ debian/patches/220_test-loop.patch | 36 ------------------------------- debian/patches/series | 1 dix/enterleave.c | 9 +++++-- dix/eventconvert.c | 4 +++ dix/getevents.c | 2 - hw/xfree86/common/xf86Xinput.c | 11 +++++---- include/exevents.h | 2 - test/xi2/protocol-eventconvert.c | 2 - xkb/xkbActions.c | 2 - 14 files changed, 81 insertions(+), 61 deletions(-)
New commits: commit 1525cba03c3c81a3547370204c88824fd5a15022 Author: Chase Douglas <chase.doug...@canonical.com> Date: Tue Jan 10 10:48:49 2012 +0100 releasing version 2:1.11.3-0ubuntu2 diff --git a/ChangeLog b/ChangeLog index c1fd54b..5733c56 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,45 @@ +commit a607cde134173b158335b2c1d92a91b2ec876aa9 +Author: Keith Packard <kei...@keithp.com> +Date: Mon Jan 9 13:17:37 2012 -0800 + + Merge remote-tracking branch 'whot/multitouch' + + (cherry picked from commit e476af417d83730b11054f4e5b127ab5540bb332) + + Conflicts: + + configure.ac + +commit fe5444bfe3c7cc56cd8bddb32d2dc45b22431aea +Author: Keith Packard <kei...@keithp.com> +Date: Mon Jan 9 11:40:23 2012 -0800 + + Merge remote-tracking branch 'whot/for-keith' + (cherry picked from commit 0b2c6491c5e5e1c9ba067299f3de61f5acee263b) + + Signed-off-by: Chase Douglas <chase.doug...@canonical.com> + +commit 447156777040e0695391ecac709de3a857368a8d +Author: Chase Douglas <chase.doug...@canonical.com> +Date: Thu Dec 22 12:00:37 2011 -0800 + + test/xi2: Really fix infinite loop in test_convert_XITouchOwnershipEvent + + long i; + for (i = 1; ; i <<= 1) + if (i == (1 << 31)) + break; + + (1 << 31) is compiled as an int, and thus is equal to -2147483648. We + are trying to compare it against a long, which on 64-bit machines is + 2147483648. This results in an infinite loop. + + Signed-off-by: Chase Douglas <chase.doug...@canonical.com> + Signed-off-by: Keith Packard <kei...@keithp.com> + (cherry picked from commit a28ff2cf92c2b35e02eacca21af929afabbf6b83) + + Signed-off-by: Chase Douglas <chase.doug...@canonical.com> + commit 0c292448ebcfcc6e5072efada55f8135b60b7795 Author: Keith Packard <kei...@keithp.com> Date: Thu Dec 22 09:35:51 2011 -0800 diff --git a/debian/changelog b/debian/changelog index 92ca608..11cb531 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +xorg-server (2:1.11.3-0ubuntu2) precise; urgency=low + + * Merge in input changes from upstream master through commit 8722ad6 + * Remove temporary patch 220_test-loop.patch, merged upstream + + -- Chase Douglas <chase.doug...@ubuntu.com> Tue, 10 Jan 2012 10:48:31 +0100 + xorg-server (2:1.11.3-0ubuntu1) precise; urgency=low * New upstream bugfix release diff --git a/debian/patches/220_test-loop.patch b/debian/patches/220_test-loop.patch deleted file mode 100644 index 476e165..0000000 --- a/debian/patches/220_test-loop.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 5750b6dbd015529e2c7b03755c8235ee3c9e6ff7 Mon Sep 17 00:00:00 2001 -From: Chase Douglas <chase.doug...@canonical.com> -Date: Thu, 22 Dec 2011 11:55:34 -0800 -Subject: [PATCH] test/xi2: Really fix infinite loop in - test_convert_XITouchOwnershipEvent - -long i; -for (i = 1; ; i <<= 1) - if (i == (1 << 31)) - break; - -(1 << 31) is compiled as an int, and thus is equal to -2147483648. We -are trying to compare it against a long, which on 64-bit machines is -2147483648. This results in an infinite loop. - -Signed-off-by: Chase Douglas <chase.doug...@canonical.com> ---- - test/xi2/protocol-eventconvert.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/test/xi2/protocol-eventconvert.c b/test/xi2/protocol-eventconvert.c -index faa9f40..bf1493c 100644 ---- a/test/xi2/protocol-eventconvert.c -+++ b/test/xi2/protocol-eventconvert.c -@@ -1005,7 +1005,7 @@ test_convert_XITouchOwnershipEvent(void) - { - in.touchid = i; - test_XITouchOwnershipEvent(&in); -- if (i == (1 << 31)) -+ if (i == ((long)1 << 31)) - break; - } - } --- -1.7.5.4 - diff --git a/debian/patches/series b/debian/patches/series index aef2d0d..a37033e 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -27,4 +27,3 @@ 208_switch_on_release.diff 209_add_legacy_bgnone_option.patch 214_glx_dri_searchdirs.patch -220_test-loop.patch commit a607cde134173b158335b2c1d92a91b2ec876aa9 Author: Keith Packard <kei...@keithp.com> Date: Mon Jan 9 13:17:37 2012 -0800 Merge remote-tracking branch 'whot/multitouch' (cherry picked from commit e476af417d83730b11054f4e5b127ab5540bb332) Conflicts: configure.ac diff --git a/Xi/exevents.c b/Xi/exevents.c index db49e31..6b2db4b 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -1159,13 +1159,11 @@ TouchEventRejected(DeviceIntPtr sourcedev, TouchPointInfoPtr ti, DeliverTouchEvents(sourcedev, ti, tel + i, ev->resource); } - /* If there are no other listeners left, then don't bother sending an - * ownership change event to no-one; if the touchpoint is pending + /* If there are no other listeners left, and the touchpoint is pending * finish, then we can just kill it now. */ - if (ti->num_listeners == 1) + if (ti->num_listeners == 1 && ti->pending_finish) { - if (ti->pending_finish) - TouchEndTouch(sourcedev, ti); + TouchEndTouch(sourcedev, ti); goto out; } @@ -1178,9 +1176,9 @@ TouchEventRejected(DeviceIntPtr sourcedev, TouchPointInfoPtr ti, ti->num_grabs--; } - /* If the current owner was removed, deliver the TouchOwnership or TouchBegin - event to the new owner. */ - if (was_owner) + /* If the current owner was removed and there are further listeners, deliver + * the TouchOwnership or TouchBegin event to the new owner. */ + if (ti->num_listeners > 0 && was_owner) TouchPuntToNextOwner(sourcedev, ti, ev); out: @@ -1803,8 +1801,10 @@ DeliverTouchEndEvent(DeviceIntPtr dev, TouchPointInfoPtr ti, InternalEvent *ev, rc = DeliverOneTouchEvent(client, dev, ti, grab, win, ev); listener->state = LISTENER_HAS_END; } - if (ti->num_listeners > 1 && - (ev->device_event.flags & (TOUCH_ACCEPT|TOUCH_REJECT)) == 0) + if ((ti->num_listeners > 1 || + (listener->type == LISTENER_GRAB && + xi2mask_isset(xi2mask, dev, XI_TouchOwnership))) && + (ev->device_event.flags & (TOUCH_ACCEPT|TOUCH_REJECT)) == 0) { ev->any.type = ET_TouchUpdate; ev->device_event.flags |= TOUCH_PENDING_END; diff --git a/configure.ac b/configure.ac index af6ea8c..6dc76c8 100644 --- a/configure.ac +++ b/configure.ac @@ -785,7 +785,7 @@ WINDOWSWMPROTO="windowswmproto" APPLEWMPROTO="applewmproto >= 1.4" dnl Core modules for most extensions, et al. -SDK_REQUIRED_MODULES="[xproto >= 7.0.22] [randrproto >= 1.2.99.3] [renderproto >= 0.11] [xextproto >= 7.1.99] [inputproto >= 2.1.99.3] [kbproto >= 1.0.3] fontsproto" +SDK_REQUIRED_MODULES="[xproto >= 7.0.22] [randrproto >= 1.2.99.3] [renderproto >= 0.11] [xextproto >= 7.1.99] [inputproto >= 2.1.99.5] [kbproto >= 1.0.3] fontsproto" # Make SDK_REQUIRED_MODULES available for inclusion in xorg-server.pc AC_SUBST(SDK_REQUIRED_MODULES) diff --git a/dix/eventconvert.c b/dix/eventconvert.c index 017c871..60dc22f 100644 --- a/dix/eventconvert.c +++ b/dix/eventconvert.c @@ -691,6 +691,10 @@ eventToDeviceEvent(DeviceEvent *ev, xEvent **xi) else xde->flags = ev->flags; + if (IsTouchEvent((InternalEvent*)ev) && + ev->flags & TOUCH_POINTER_EMULATED) + xde->flags |= XITouchEmulatingPointer; + if (ev->key_repeat) xde->flags |= XIKeyRepeat; commit fe5444bfe3c7cc56cd8bddb32d2dc45b22431aea Author: Keith Packard <kei...@keithp.com> Date: Mon Jan 9 11:40:23 2012 -0800 Merge remote-tracking branch 'whot/for-keith' (cherry picked from commit 0b2c6491c5e5e1c9ba067299f3de61f5acee263b) Signed-off-by: Chase Douglas <chase.doug...@canonical.com> diff --git a/Xi/xiproperty.c b/Xi/xiproperty.c index 61c5d57..3061283 100644 --- a/Xi/xiproperty.c +++ b/Xi/xiproperty.c @@ -706,7 +706,7 @@ XIDeleteDeviceProperty (DeviceIntPtr device, Atom property, Bool fromClient) int XIChangeDeviceProperty (DeviceIntPtr dev, Atom property, Atom type, int format, int mode, unsigned long len, - const pointer value, Bool sendevent) + const void *value, Bool sendevent) { XIPropertyPtr prop; int size_in_bytes; diff --git a/dix/enterleave.c b/dix/enterleave.c index a39e640..89a82ab 100644 --- a/dix/enterleave.c +++ b/dix/enterleave.c @@ -1292,14 +1292,17 @@ DeviceFocusEvents(DeviceIntPtr dev, NotifyPointer); DeviceFocusEvent(dev, XI_FocusOut, mode, NotifyNonlinear, from); /* next call catches the root too, if the screen changed */ - DeviceFocusOutEvents(dev, from->parent, NullWindow, mode, + DeviceFocusOutEvents(dev, from, NullWindow, mode, NotifyNonlinearVirtual); } /* Notify all the roots */ for (i = 0; i < nscreens; i++) DeviceFocusEvent(dev, XI_FocusIn, mode, in, screenInfo.screens[i]->root); if (to == PointerRootWin) + { DeviceFocusInEvents(dev, GetCurrentRootWindow(dev), sprite->win, mode, NotifyPointer); + DeviceFocusEvent(dev, XI_FocusIn, mode, NotifyPointer, sprite->win); + } } else { @@ -1321,7 +1324,7 @@ DeviceFocusEvents(DeviceIntPtr dev, if (IsParent(to, from)) { DeviceFocusEvent(dev, XI_FocusOut, mode, NotifyAncestor, from); - DeviceFocusOutEvents(dev, from->parent, to, mode, + DeviceFocusOutEvents(dev, from, to, mode, NotifyVirtual); DeviceFocusEvent(dev, XI_FocusIn, mode, NotifyInferior, to); if ((IsParent(to, sprite->win)) && @@ -1353,7 +1356,7 @@ DeviceFocusEvents(DeviceIntPtr dev, NotifyPointer); DeviceFocusEvent(dev, XI_FocusOut, mode, NotifyNonlinear, from); if (from->parent != NullWindow) - DeviceFocusOutEvents(dev, from->parent, common, mode, + DeviceFocusOutEvents(dev, from, common, mode, NotifyNonlinearVirtual); if (to->parent != NullWindow) DeviceFocusInEvents(dev, common, to, mode, NotifyNonlinearVirtual); diff --git a/dix/getevents.c b/dix/getevents.c index 3b40a5b..d0014e6 100644 --- a/dix/getevents.c +++ b/dix/getevents.c @@ -1328,7 +1328,7 @@ fill_pointer_events(InternalEvent *events, DeviceIntPtr pDev, int type, storeLastValuators(pDev, &mask, 0, 1, devx, devy); /* Update the MD's co-ordinates, which are always in desktop space. */ - if (!IsMaster(pDev) || !IsFloating(pDev)) { + if (!IsMaster(pDev) && !IsFloating(pDev)) { DeviceIntPtr master = GetMaster(pDev, MASTER_POINTER); master->last.valuators[0] = screenx; master->last.valuators[1] = screeny; diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c index 36c40d7..671c9e0 100644 --- a/hw/xfree86/common/xf86Xinput.c +++ b/hw/xfree86/common/xf86Xinput.c @@ -968,15 +968,16 @@ NewInputDeviceRequest (InputOption *options, InputAttributes *attrs, pInfo->attrs = DuplicateInputAttributes(attrs); } - if (!pInfo->driver || !pInfo->name) { - xf86Msg(X_INFO, "No input driver/identifier specified (ignoring)\n"); + if (!pInfo->name) { + xf86Msg(X_INFO, "No identifier specified, ignoring this device.\n"); rval = BadRequest; goto unwind; } - if (!pInfo->name) { - xf86Msg(X_ERROR, "No device identifier specified (ignoring)\n"); - rval = BadMatch; + if (!pInfo->driver) { + xf86Msg(X_INFO, "No input driver specified, ignoring this device.\n"); + xf86Msg(X_INFO, "This device may have been added with another device file.\n"); + rval = BadRequest; goto unwind; } diff --git a/include/exevents.h b/include/exevents.h index bd16970..31acb30 100644 --- a/include/exevents.h +++ b/include/exevents.h @@ -92,7 +92,7 @@ extern _X_EXPORT int XIChangeDeviceProperty( int /* format*/, int /* mode*/, unsigned long /* len*/, - const pointer /* value*/, + const void* /* value*/, Bool /* sendevent*/ ); diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c index 1e94d26..cf20737 100644 --- a/xkb/xkbActions.c +++ b/xkb/xkbActions.c @@ -784,7 +784,7 @@ DeviceIntPtr kbd; filter->active= 0; return ((pMsg->flags&XkbSA_MessageGenKeyEvent)!=0); } - return 0; + return 1; } static int commit 447156777040e0695391ecac709de3a857368a8d Author: Chase Douglas <chase.doug...@canonical.com> Date: Thu Dec 22 12:00:37 2011 -0800 test/xi2: Really fix infinite loop in test_convert_XITouchOwnershipEvent long i; for (i = 1; ; i <<= 1) if (i == (1 << 31)) break; (1 << 31) is compiled as an int, and thus is equal to -2147483648. We are trying to compare it against a long, which on 64-bit machines is 2147483648. This results in an infinite loop. Signed-off-by: Chase Douglas <chase.doug...@canonical.com> Signed-off-by: Keith Packard <kei...@keithp.com> (cherry picked from commit a28ff2cf92c2b35e02eacca21af929afabbf6b83) Signed-off-by: Chase Douglas <chase.doug...@canonical.com> diff --git a/test/xi2/protocol-eventconvert.c b/test/xi2/protocol-eventconvert.c index 2df9cb9..0913450 100644 --- a/test/xi2/protocol-eventconvert.c +++ b/test/xi2/protocol-eventconvert.c @@ -1021,7 +1021,7 @@ test_convert_XITouchOwnershipEvent(void) { in.touchid = i; test_XITouchOwnershipEvent(&in); - if (i == (1 << 31)) + if (i == ((long)1 << 31)) break; } } -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1rkzig-0000nz...@vasks.debian.org