Hi,
I have been reading about the Intellimouse protocol and the usage of the 4th
byte in the standard packet. Some documentation claims that the low order nibble
is used as magnitude and the high order nibble as sign (F for negative, 0 for
positive), encoded in 2's complement; This would indicate that the valid range
for this input is 15 to -15. Some documents claim that the full range of 127 to
-127 is valid. However, dz @
xc/programs/Xserver/hw/xfree86/input/mouse/mouse.c:1414 is limited to 6> && >-6
and this certainly seems incorrect. The case in point is an AMI 150T Optical
WebScroll mouse, which reports vertical scroll as 1 and -1 (FF) and horizontal
scroll as 7 and -7 (F9). I have a patch to remove the checks on the limits that
works for me:

--- xc/programs/Xserver/hw/xfree86/input/mouse/mouse.c.orig     2001-12-19
16:05:22.000000000 +0000
+++ xc/programs/Xserver/hw/xfree86/input/mouse/mouse.c  2003-08-31
23:55:04.000000000 +0100
@@ -1411,7 +1411,5 @@
            dx = (pBuf[0] & 0x10) ?    pBuf[1]-256  :  pBuf[1];
            dy = (pBuf[0] & 0x20) ?  -(pBuf[2]-256) : -pBuf[2];
            dz = (char)pBuf[3];
-           if ((dz >= 7) || (dz <= -7))
-                dz = 0;
            break;
                                                                                
                                                              
I also tested it with > 15 && < -15 which worked as well. I do not know the
correct solution.

Hoping to be helpful
Matthew Bell
_______________________________________________
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel

Reply via email to