Looking at the source code for xserver-xorg-input-mouse it seems that this behaviour is a gross overreaction to the reception of a spurious z-axis packet from the mouse.
if (pMse->negativeW != MSE_NOAXISMAP) { switch (pBuf[3] & 0x0f) { case 0x00: break; case 0x01: dz = 1; break; case 0x02: dw = 1; break; case 0x0e: dw = -1; break; case 0x0f: dz = -1; break; default: xf86Msg(X_INFO, "Mouse autoprobe: Disabling secondary wheel\n"); pMse->negativeW = pMse->positiveW = MSE_NOAXISMAP; } } So, if it receives any z-axis data that it does not understand, it does not simply ignore it, it immediately and for no reason nukes the secondary wheel, and moreover does this in such a way that it also destroys any wheel remapping, with the result that it also destroys my vertical wheel. This is very rude. So I am currently testing the following patch, which simply reports and then ignores the spurious packet, instead of making my mouse unusable. diff -u src/mouse.c.orig src/mouse.c --- src/mouse.c.orig 2007-12-06 14:57:38.000000000 +0000 +++ src/mouse.c 2007-12-06 14:27:08.000000000 +0000 @@ -1511,9 +1511,14 @@ case 0x0e: dw = -1; break; case 0x0f: dz = -1; break; default: +#ifdef notdef xf86Msg(X_INFO, "Mouse autoprobe: Disabling secondary wheel\n"); pMse->negativeW = pMse->positiveW = MSE_NOAXISMAP; +#else + xf86Msg(X_INFO, + "ExplorerPS/2 decode: unrecognised z-axis packet received\n"); +#endif } } if (pMse->negativeW == MSE_NOAXISMAP) -- Pigeon Be kind to pigeons - - Pigeon's Nest: http://pigeonsnest.co.uk/ GPG key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x21C61F7F
signature.asc
Description: Digital signature