[Gpm] repeat and accel

Ian Zimmerman gpm@lists.prosa.it
16 Feb 2001 18:06:48 -0800

Andrew> I am using X with mouse input from gpm in repeater mode, and I
Andrew> noticed that the pointer started acting funny when I tried to
Andrew> move it quickly.  I discovered that when dx or dy exceeds the
Andrew> eight bits that can be repeated faithfully (FWIW, this is with
Andrew> the ms3 repeater, which Debian adds as a patch), the repeater
Andrew> just sends the low bits, causing weird aliasing.  The dx and
Andrew> dy can be too big because of an accel option to gpm (which
Andrew> defaults to 2), or perhaps because some mice have more than
Andrew> eight bits of motion input (?).

Andrew> I'm sure nobody cares much about this trifle, but supposing I
Andrew> wanted to fix it, I think I can either properly cap the dx and
Andrew> dy in the repeater, or just not apply accel in repeater mode.
Andrew> The later seems to be done for the sensitivity setting (in
Andrew> processMouse, opt_scale is only applied if not repeating); was
Andrew> that done for this reason?  That's actually sort of annoying,
Andrew> since XFree86 doesn't offer a plain sensitivity setting.
Andrew> Also, I don't know if there is any other reason the dx and dy
Andrew> might be more than eight bits.

This is clearly a bug.  I would definitely not apply any acceleration
for repeating.  Logically, repeating should look just as if X was
reading the repeated protocol directly from hardware.

Looking at the code, I see that this happens for any protocol - the
accleration is just applied before gpm looks if it is in repeater
mode.  So, this (and not Debian BTS :) is the right place to bring it

Ian Zimmerman, Oakland, California, U.S.A.
EngSoc adopts market economy: cheap is wasteful, efficient is expensive.