[gpm]Synaptics update: scrolling, 4 way button

Peter Berg Larsen pebl@math.ku.dk
Fri, 31 May 2002 16:20:44 +0200 (MET DST)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--0-780030365-1022854844=:29201
Content-Type: TEXT/PLAIN; charset=US-ASCII


Hi,

This patch is made against the last synaptics.c I gave Nico privatly a
long time ago.  

This patch includes

Lot better options to contol scrolling speed. It now depend on how fast
you scroll/move your finger. It depends on whether fingerpressure is
on. Autoscrollings speed can be controlled.

The 4 way buttons can now be programmed in the config file. The options
are as cornertaps.  Button scrollingspeed can now be controlled. 

A lot of functions renaming preparing for a split of synaptics.c to
touchpad.c, synaptics.c, versapad.c, alps.c. (the reason for the large
patch)

"if 0" the warnings given at compiletime.

Minor code cleanup.

Minor Spelling corrections.


Peter
--
E-Mail:       pebl@math.ku.dk 
Real name:    Peter Berg Larsen 
Where:        Department of Computer Science, Copenhagen Uni., Denmark

--0-780030365-1022854844=:29201
Content-Type: APPLICATION/octet-stream; name="diff_synaptics_c_7.gz"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.OSF.4.21.0205311620440.29201@artin.math.ku.dk>
Content-Description: 
Content-Disposition: attachment; filename="diff_synaptics_c_7.gz"

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
RTnimZIr+kfV4NDTrLhuh9jVvsMHwzCMhUwkQ+fYZwwzMF+r427yugL6dLZw
4aETYan43tyRBoIyTg08qdlhLE6qd0qYW9DkNmsEZQOpeR0spvrQHnSoYOYO
9lWCxAKGd+LJK+iyt1gAMHXtWbWh1hx84ld/EIFqawkkOIFwcyrVVlGpVb03
oWr3JpRoV4/HGHhZ0JWcUi8heCjxLIh0NjLGcU+yN4WC9L+O3AsYxOWMchmr
DcWzRlDapZIpEUZKCDqqA2ujUikpVAdr0ZFObFDhGiy65orlkRpBplPTKwAt
+ppNf1inlUIhBOtbOVpK1r/K4quYhS7XOYlZW0ZV8YeS5rjHFV+44ok+Kx7g
N3uAG9JzI1grrxaD90VSFB7z2Gxamp1cijSw6+ZLeZydNSl51OEySPiiSu3F
UOZCZ48ufPN3m11VOkrnTmavaJPAnttNYAOJR8CoTpOq0QnskMFmROTwgakz
rY9rvBB+oylqxfev7AsnqmAR5bU0PsDO+MKWxC1YHHM0xvDWw1h7lEFwYapC
gKcJ9X6obsbc7XrtFtKp3/Jaba0NWe5ApQrJDG6tBSFMMzjSgqjSvzTg+Kwj
6Z10/LuBH++Ih54Hl0fBJZDciXCVKliiuzjM/FX5a+zGdt0sK7GwpLRWvS7T
GjlaubKtKDgjLGzV0MTrsWM8RbcyXKhkpT7JrD//efXn8uyxM4GOEhvM55Nb
KayTRK40c8Q8W3ef6SqfVjOnmUeo5VPtOp6hL26a5OjWfX1rHROo5bC8B5vJ
I/T20fgNWIKcXnJG8qct1p8BV4Pad1IOiAbNzLNbZ0Hll9RGM1LfcEbqq2ek
vnpGOFdX31Mw1C57mUxcVSzG2I+iUfw05Wx+lNiTMA3VLd4z0iLMPJqMkseW
2YWbmV0aMWd1sFGK2LD42m2yBd3zdSxCpSrS3Fipi6xsWQ9kzqid3UhHGnmD
V8+Wc7sFnZjWWBQk5mROpOhsX23iqf1ZLZfs+8w2vqKrwiwWC+RX26KziFLN
A8ucXWXStn26qcHvtffUVQ12zLyuttKCQwbOyQKjPJSdScg2V33oCLi+hg+3
Mbz+K18mg24T/EVYPkdi11CduclemWXEQ3nAX1dzWx3y1xuzzbowQRlOprUl
a1vKWbFaVCXVO7AN437c64LesqedW0SDRTgNKeatc+Y5SUwW2pFKN8XUcM2Z
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
YM0BZcNiBuYVqCZ4V8GtxdfZiUKY50cXMPzDIx+HbU9U6m4VeHwxTlIUdxht
CjCqKfD4tagsk9BMqv2GDNlVnbagUxB35Z22HtZpQ5cqwLDHwWQiK5nZ7bDE
dIJ594QaBsqug88RxnQJNBqHIzp8LjqMC1lpMhPy+0ET7CzoPKEuDi4+nA/e
/QUI1ekZQskqHWZqz9kTLiUgnTwdzq7i6F8cJjfChJir1mr5yq2DOy2e+8jv
r/u23hAwplo9IMuAOrP0AWqCZSeuwhR/z3uqqAWGP4sa8UZPTS7VKTvQ4iXG
rZ5ryijPDYOcuVh5XJAEFylKM06OQMnXyKovVCVjaWNSkD5e0Ab1FUbVxRwk
o9zV/Vbf67QQ9U7P63Lq1Y6Qd4LwFB+8fX9yNDg7uDhCCUiPeMbPjv5bnVa9
xrowxDUkuQO8wRIvlJGrHWFyzb9EVxjkcyOfMScTeGth+On120MUCUPYX4es
WOQz7HGweY9XLge/qBV5s4gKtg+LipYbf7BV3uMGaCGe0nCeOh444UwLqleO
DNRa2LpWQnCaRvSiuS+inzv7WIhTR1/KvgYqKYst2wT9VC9f7lafNL+0LZts
NaSyVhlgrDxNRz///KKlrAOK+6My2ZSXFkkPFjR7yoUmtHzGNNKdfJlITsPF
1DB6/xo/IFEfoYjCXZwOtmMoaBrcct4ZXfUxm4xQrikR8wte8IH/cRf4NTZE
8lKhEjyr05KTP4vTxcwSTw23EBBjRbAQBlclsuttYOIBXu3B4mYafaFjUcgs
fwX2R7TeTwKuv0OjLuRgto78dSycbcZ+fpeJJT9qfpeOU2aSwrk3C3tFI3v7
NXpiSU8rGN7pbPXCsPuTzMVuv9o6/mox/2DZFhvDBoM+05AxKQ1ErZvqLA+Q
4YTpa2QIHGYaOdJJaUVrprW12bS2/o+ntfUfntZWxnbwey2v3cctaG/P6/hy
CzL6g9Ia/rkMYQOhtaxVCliQ8hoOpa/DbNPnr2jbwwZ5PQV4RqsetlFVss8Q
AoPFP5N0zYQWNFQROTWpmSccS3roTOttmNtog/qFrbmMR85bf+XbVsHbB/OG
jV7NRi+jW6leDIarG7SKG6jrreydyHEnWY6jBziQsT+GUhLbNPXepeM4yQU2
SwOvQs++4SGR3aVp9Zw7gY4C1lv7mXs52qqYvb4bTZCHwpGU+mI0MysMW6Y2
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
--0-780030365-1022854844=:29201--