This was originally intended as a fixed xorg.conf option only (and still
largely is seen as such). Secondary software button are required only on a specific series
of touchpads and should be pre-configured by the system and/or the
distribution. As such, the property will not be initialized if it is not set
in the xorg.conf and will thus not respond to runtime changes.
Exposing the property in this way gives clients a chance of detecting if a top
software button area is present and thus adjust their behaviour accordingly.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
I doubt devices that have scrollbuttons are still manufactured. Having
untested code around is just asking for trouble.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Chase Douglas <chase.douglas@canonical.com>
"Trackstick emulation mode? That exists?" I hear you say? Yes, indeed. Well,
no, not anymore. This driver is already unmaintainable without features like
this.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Chase Douglas <chase.douglas@canonical.com>
SHM configuration was removed in Apr 2009 (c09a3d50e9), since then it has
only been usedful for debugging. And we have better tools (evtest) for
debugging hardware events.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Chase Douglas <chase.douglas@canonical.com>
Some clickpad devices have button areas painted on them. Set this
property to the area of the right and middle buttons to enable proper
click actions when clicking in the areas.
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Add it as a writable device property. We may not know how to probe some
clickpads so allow the user to override it.
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
This reverts commit 39afe69ad7.
1. For such a small module, the build time improvement is most likely
negligible. At least, I'd like to see some timings proving it's
worthiness before seeing the patch go back in.
2. This kind of change would need a thorough review. The need to
operate the build from a single toplevel Makefile is a significant
change. The two most noticeable issues for me are that collapsing all
the Makefiles could easily cause namespacing issues with the
variables, and operating on files outside the current directory can
introduce subtle bugs. I feel that the non-recursive style is
generally less robust than the standard recursive make scheme.
3. It's unlike all the other X.org modules. This isn't a showstopper
for me, but the recursive style is well understood here and you've
beaten all the modules into a consistent format that makes build bugs
unique to specific modules less likely.
Acked-by: Dan Nicholson <dbn.lists@gmail.com>
To give a concrete example for #3 above, the 175 man pages are much
easier maintained using a very similar makefile in the man directory
of all X.Org module.
The cost of maintaining a single makefile is much higher. Every target
in the makefile has to be reviewed and tested when changes are made.
Not everyone has the all the skills to handle widely different targets
such as man pages, DocBook/XML, librairies, C code, distribution hooks,
and so on.
Acked-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
With this change, the whole of the build is done non-recursively in the
top-level Makefile.am. This reduces the amount of overhead due to recursing
into directories only to build one file.
Signed-off-by: Diego Elio Pettenò <flameeyes@gmail.com>
Signed-off-by: Christoph Brill <egore911@egore911.de>
This patch allows usage of "synclient Orientation=0" (values from 0 to
3). It will rotate the touchpad similar to "xrandr -o". Original patch
was extended for alps and ps2.
Signed-off-by: Christoph Brill <egore911@egore911.de>
This introduces hysteresis into the driver's processing. It significantly
reduces noise motion, i.e. now the pad does no longer generate a stream of
sub-pixel events when just holding the position with the finger down.
Also, taking off the finger no longer generates additional motion,
scrolling becomes flicker-free etc.
The code makes use of "fuzz" from the kernel, if available. This has not
been tested extensively, as an overwhelming majority of evdev touchpad
drivers view 0 (zero) as a good value for fuzz, forcing userland into
assuming "zero fuzz" means "make zero assumptions about fuzz", not
"there is no fuzz". Until things improve, this is what we do.
Anyway, the fuzz a.k.a. hysteresis can be set/overridden with options
and properties, as documented.
Signed-off-by: Simon Thum <simon.thum@gmx.de>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
When you are coasting (but not corner coasting) you might want the
scrolling to slow down and stop on its own. This also lets you
start coasting while using a two finger scroll.
Signed-off-by: Patrick Curran <pjcurran@wisc.edu>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Tested-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Guest mouse dates back to quite a while ago, hasn't been tested for ages and
the current synaptics interface guide claims the bit that we used to check
if guestmouse is available is "reserved for future use. The host should
ignore the values of reserved bits when reading the capability bits."
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
On some touchpads physical buttons are located under the touchpad surface. As a
result, when users try to perform a click, by pressing that part of the surface
of the touchpad, they get a click, a movement, a tap and (in some cases) a scroll,
which can make clicks quite inaccurate.
The "Synaptics Area" property can be used to define the edges of the active area of
the touchpad so that all movement, scrolling and tapping which take place outside
of this area will be ignored. This property is disabled by default.
Fixes xorg bug #21613.
Signed-off-by: Alberto Milone <alberto.milone@canonical.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Synaptics uses anisotropic coordinate system. On some wide touchpads
vertical resolution can be twice as high as horizontal which causes
unequal sensitivity on x/y directions.
VertResolution and HorizResolution can be used to set the resolution.
The ratio of the values is used to compensate x/y sensitivity. The
properties are configured automatically if touchpad reports resolution
and if running on linux 2.6.31 or newer.
Fixes xorg bug #18351.
Signed-off-by: Tero Saarni <tero.saarni@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This patch adds a "Synaptics Capabilities" property that advertises the
capabilities of the device in a read-only boolean property.
The first three values signal the presence of physical mouse buttons (left,
middle, right). Values 4 and 5 signal the touchpad's ability to do
multi-finger tracking.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
The tap-and-drag gesture is an alternative way of dragging.
It is performed by tapping (touching and releasing the finger), then
touching again and moving the finger on the touchpad.
This gesture is enabled by default and can be disabled by setting the
TapAndDragGesture option to false.
The gesture already existed in synaptics and was always enabled. This
commit adds an option to switch it on/off. The default behavior is
tap-and-drag being enabled, that is, TapAndDragGesture is true.
The "Synaptics Gestures" property is intended to hold all new gesture
enabling options, like options for the upcoming multitouch gestures.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This was only used in PS/2, on linux only on kernel 2.4 and it clobbered up
the rest. Move it to the ps2comm parts only, keep it private there.
This includes adding a "proto_data" field to the SynapticsPrivate.
This patch removes the -h option for synclient.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Christoph Brill <egore911@egore911.de>
Exposes the SHMConfig parameters through device properties and allows run-time
changes to those properties.
Not exposed yet are floating point values:
min_speed, max_speed, accl, trackstick_speed (SYNAPTICS_PROP_SPEED)
scroll_dist_circ (SYNAPTICS_PROP_CIRCULAR_SCROLLING_DIST)
coasting_speed (SYNAPTICS_PROP_COASTING_SPEED)
press_motion_min_factor, press_motion_max_factor (SYNAPTICS_PROP_PRESSURE_MOTION_FACTOR)