167 Commits

Author SHA1 Message Date
Peter Osterlund
7b610b2d4b Fixed some problems with ALPS guest devices.
From Alastair M. Robinson:

* The guest mouse doesn't report button releases.

* The stick pointer has buttons of its own, and they don't work.

  Attached is another patch, this one far less invasive than the last,
  which fixes these two problems.
  (The button presses that come from the stick pointer's buttons arrive
  in events with pressure set to 127, just like stick movement - but
  this doesn't seem to be terribly reliable - I think the button
  release gets reported with true pressure when the touchpad is being
  used too.  For this reason, I've set these up to report as ->left /
  ->right, not as ->guest_left / ->guest_right.)

* One issue that remains - the middle button emulation for two button
  mice doesn't seem to work for the guest mouse.
  Fixed by me.
2006-04-09 04:02:44 +02:00
Peter Osterlund
7e210b8b98 Whitespace fixes. 2006-04-09 04:02:44 +02:00
Peter Osterlund
d0d22a6055 The GuestMouseOff parameter now also disables the guest
buttons.
2006-04-09 04:02:43 +02:00
Peter Osterlund
53b9941db7 The SynapticsPreInit() function shouldn't call
xf86RemoveEnabledDevice() when it hasn't called xf86AddEnabledDevice()
first.
2006-04-09 04:02:39 +02:00
Peter Osterlund
c30e4b8d45 Fixed another X server crash caused by forgetting to remove
the timer callback in the DeviceOff() function.
2006-04-09 04:02:38 +02:00
Peter Osterlund
a7a994b49a Removed duplicated function declaration. 2006-04-09 04:02:38 +02:00
Peter Osterlund
cbee47a1f2 Don't remove the shared memory segment when DEVICE_CLOSE is
received. When exiting a KDE session in FC2, DEVICE_CLOSE is sent to
the synaptics driver, but the X server doesn't quit. Therefore, the
driver will use a stale memory area afterwards, which can cause X
server crashes and prevent synclient from working.
Reported by Jerry Kiely <jerry@cowboysmall.com>.
2006-04-09 04:02:37 +02:00
Peter Osterlund
14c9eeead6 Added support for circular touchpads. Based on a patch from
Axel G. Rossberg <Axel@Rossberg.net>.
2006-04-09 04:02:37 +02:00
Peter Osterlund
1cb6c555d1 Added two parameters.
MaxDoubleTapTime makes it easier to do fast double clicks.
ClickTime adds a delay between the button down and button up events
generated in response to a tap event.
2006-04-09 04:02:27 +02:00
Peter Osterlund
32d18d4e5b Fixed handling of the repeater device.
(Reported by Ronen Abravanel <ronen@techunix.technion.ac.il>.)
2006-04-09 04:02:23 +02:00
Peter Osterlund
5d2b7423ed Small cleanup. 2006-04-09 04:02:22 +02:00
Peter Osterlund
77c952aa27 Made double clicks faster, so that they work in xmms and the
gtk file selector.
Reported by Jean DIRAISON <diraison.jean@wanadoo.fr>.)
2006-04-09 04:02:22 +02:00
Peter Osterlund
481bb4f0af Fixed bug in change dee1cca686 that broke
middle mouse button
emulation. The HandleState() fuction modifies the SynapticsHwState
object, so it must work on a copy of the real hardware state, or else
the wrong state will later be used when HandleState() is called from
the timer function.
2006-04-09 04:02:22 +02:00
Peter Osterlund
214bbbd518 Added a "GuestMouseOff" parameter to disable the pass
through device. (It's not entirely uncommon that the pointing stick is
broken and generates bogus pointer movements.)
From Moritz Maass <maass@informatik.tu-muenchen.de>.
2006-04-09 04:02:19 +02:00
Peter Osterlund
a4ba6e264a Added (untested) support for ALPS touchpads using the 2.4
linux kernel.
2006-04-09 04:02:14 +02:00
Peter Osterlund
70d8648301 Removed repeater from the shared memory segment. It's not
possible to share pointers between different address spaces.
2006-04-09 04:02:13 +02:00
Peter Osterlund
ab2b8a2c4b Fixed inconsistent function name. 2006-04-09 04:02:13 +02:00
Peter Osterlund
6df2b83aff Don't call PS2QueryHardware() from PSMReadHwState(). 2006-04-09 04:02:13 +02:00
Peter Osterlund
264bbfd70a Added (untested) support for the FreeBSD psm mouse driver. 2006-04-09 04:02:12 +02:00
Peter Osterlund
3e37b4c7d2 Moved the CommData struct from synaptics.h to synproto.h so
that ps2comm.c and eventcomm.c don't have to define SYNAPTICS_PRIVATE.
2006-04-09 04:02:06 +02:00
Peter Osterlund
647c5ae5f5 Don't call ps2comm functions directly from synaptics.c. 2006-04-09 04:02:06 +02:00
Peter Osterlund
f574d42c77 Moved autodev handling to the protocol specific files. 2006-04-09 04:02:06 +02:00
Peter Osterlund
dee1cca686 Don't send the whole SynapticsPrivate struct to the
ReadHwState() functions.
2006-04-09 04:02:02 +02:00
Peter Osterlund
641aef59c6 Small #include fix. 2006-04-09 04:02:02 +02:00
Peter Osterlund
324421dd86 Moved reading of hardware state to the protocol specific
files.
2006-04-09 04:02:01 +02:00
Peter Osterlund
05011c8079 Replaced Success with TRUE/FALSE where possible. 2006-04-09 04:02:01 +02:00
Peter Osterlund
695a442786 Moved the QueryHardware function to the protocol specific
files.
2006-04-09 04:02:00 +02:00
Peter Osterlund
c1efdf9b3b The PrintIdent() function doesn't need access to the whole
SynapticsPrivate struct.
2006-04-09 04:02:00 +02:00
Peter Osterlund
5a3e05478a Some work on abstracting out the protocol differences from
synaptics.c to make supporting the FreeBSD psm driver possible.
2006-04-09 04:02:00 +02:00
Peter Osterlund
a4334dd02d Spelling fixes. 2006-04-09 04:01:59 +02:00
Peter Osterlund
c818be3c6f Small simplification in HandleTapProcessing(). 2006-04-09 04:01:59 +02:00
Peter Osterlund
1a4834ed33 Moved pointer delta computations to a separate function. 2006-04-09 04:01:58 +02:00
Peter Osterlund
f13fa56f1a Moved scroll processing to a separate function. 2006-04-09 04:01:58 +02:00
Peter Osterlund
174d85a0f7 Implemented a proper state machine for tap and drag
processing. This fixes several problems:
* Double tap and drag now works. (Problem reported by Andrew Pimlott
  <andrew@pimlott.net>.)
* Locked drags are handled correctly, even for button 2 and 3
  tap-and-drag operations.
* The [LR][TB]CornerButton and TapButton[123] parameters now work also
  for button values > 3.
* The old code was too hard to understand.
2006-04-09 04:01:58 +02:00
Peter Osterlund
8f131cab87 Removed the unused reset retry loop. 2006-04-09 04:01:57 +02:00
Peter Osterlund
d1feeac0d2 More preparations for FreeBSD support. 2006-04-09 04:01:57 +02:00
Peter Osterlund
4feab2340f Shortened the code in SynapticsPreInit() by introducing a
helper variable.
2006-04-09 04:01:57 +02:00
Peter Osterlund
f56d238d28 Some changes to make supporting FreeBSD easier. From Arne
Schwabe <arne@rfc2549.org>, with some editing by me.
2006-04-09 04:01:56 +02:00
Peter Osterlund
a30d9b0eda When no usable event device node was found, print out how
many nodes were checked.
2006-04-09 04:01:52 +02:00
Peter Osterlund
eeb40cac2b Made it possible to have both circular scrolling and
vertical/horizontal scrolling enabled at the same time. From Matthias
Ihmig <m.ihmig@gmx.net>.
2006-04-09 04:01:52 +02:00
Peter Osterlund
362c0722dd Made it possible to disable vertical and horizontal
scrolling by setting the corresponding parameter to zero. From Matthias
Ihmig <m.ihmig@gmx.net>.
2006-04-09 04:01:52 +02:00
Peter Osterlund
2f36b06fdc Made it possible to use "edge motion" also when not
dragging. From Matthias Ihmig <m.ihmig@gmx.net>.
2006-04-09 04:01:51 +02:00
Peter Osterlund
661c08dca8 Added pressure dependent edge motion speed. From Matthias
Ihmig <m.ihmig@gmx.net>.
2006-04-09 04:01:51 +02:00
Peter Osterlund
bc76e183f5 Fixed bug in change ec6c36c16d. 2006-04-09 04:01:51 +02:00
Peter Osterlund
8307eaaced Added support for middle mouse buttons. (Some ALPS touchpads
have them.)
2006-04-09 04:01:49 +02:00
Peter Osterlund
ec6c36c16d Small preparation for pressure dependent edge motion speed. 2006-04-09 04:01:49 +02:00
Peter Osterlund
c950f4cd63 Added a "distribution" target to the Makefile. 2006-04-09 04:01:47 +02:00
Peter Osterlund
c03394d78a Removed unnecessary #include. From Paul Bender
<pbender@qualcomm.com>.
2006-04-09 04:01:45 +02:00
Peter Osterlund
995df72ef0 Added support for circular scrolling. From Alexei Gilchrist
<alexei@physics.uq.edu.au>, with some cosmetic changes by me.
2006-04-09 04:01:42 +02:00
Peter Osterlund
a593f31943 Handle touchpads with a scroll region on the right side
where very large X coordinates (typically 8176=0x1ff0) are reported.
2006-04-09 04:01:39 +02:00