diff options
author | marha <marha@users.sourceforge.net> | 2010-11-30 10:03:09 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2010-11-30 10:03:09 +0000 |
commit | 3e2f3f105cfe65384d2adeb2bd678850d9be47f9 (patch) | |
tree | 1c3e43a774683e6e47cbd2293679b7115fbaa3cb /xorg-server/dix/eventconvert.c | |
parent | fed109d6a33c0871291d1bb2f3f6b7a3d1a3e9d7 (diff) | |
parent | 57818d0fe4f7cf94279909f03ec11b326b284f1e (diff) | |
download | vcxsrv-3e2f3f105cfe65384d2adeb2bd678850d9be47f9.tar.gz vcxsrv-3e2f3f105cfe65384d2adeb2bd678850d9be47f9.tar.bz2 vcxsrv-3e2f3f105cfe65384d2adeb2bd678850d9be47f9.zip |
svn merge ^/branches/released .
Diffstat (limited to 'xorg-server/dix/eventconvert.c')
-rw-r--r-- | xorg-server/dix/eventconvert.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/xorg-server/dix/eventconvert.c b/xorg-server/dix/eventconvert.c index e45878a90..e9297149c 100644 --- a/xorg-server/dix/eventconvert.c +++ b/xorg-server/dix/eventconvert.c @@ -324,14 +324,16 @@ countValuators(DeviceEvent *ev, int *first) for (i = 0; i < sizeof(ev->valuators.mask) * 8; i++)
{
- /* Assume mode of 0th valuator matches XI1 device mode. Stop when the
- * event mode changes since XI1 can't handle mixed mode devices.
- */
- if (ev->valuators.mode[i] != ev->valuators.mode[0])
- break;
-
if (BitIsOn(ev->valuators.mask, i))
{
+ /* Assume mode of first_valuator matches XI1 device mode. Stop when the
+ * event mode changes since XI1 can't handle mixed mode devices.
+ */
+ if (first_valuator > -1 &&
+ BitIsOn(ev->valuators.mode, i) !=
+ BitIsOn(ev->valuators.mode, first_valuator))
+ break;
+
if (first_valuator == -1)
first_valuator = i;
last_valuator = i;
|