summaryrefslogtreecommitdiff
path: root/src/synapticsstr.h
AgeCommit message (Collapse)AuthorFilesLines
2010-06-17Purge GuestMouse support.Peter Hutterer1-1/+0
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>
2010-06-17Reshuffle default value initialization.Peter Hutterer1-0/+3
No functional changes, just code structure. The eventcomm backened is the only one with a real probe function right now. So provide a default query proc that reads the touchpad coordinates in. The values provided are the ones that then will give us the right edge settings in concordance with the default we had before. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-05-10Make scrollbuttons processing and property conditional on their existence.Peter Hutterer1-0/+1
There are not a lot of touchpads that have extra physical scroll buttons anymore. For those that don't have them, don't initalize the properties and conditionalize some of the code (moved into its own functions). Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-11-05Clean up debugging system, allow for --enable-debugPeter Hutterer1-0/+11
Add --enable-debug to list of configure options. Clean up the DBG macro to use xf86MsgVerb and supply the verbosity. Don't use ErrorF from the driver, use xf86Msg instead. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Acked-by: Adam Jackson <ajax@redhat.com>
2009-07-28Remove the "SpecialScrollAreaRight" option. (#21001)Peter Hutterer1-2/+0
This option auto-adjusts the right edge on the touchpad but wrongly so. It does not take the edge width into account, thus setting the right edge to the max value received - leaving only a single-pixel scroll area in some cases. A previous attempt to auto-adjust edges has failed (afb60a0b). The kernel's min/max values cannot be relied on for actual range clipping and thus scroll edge settings are best left untouched. X.Org Bug 21001 <http://bugs.freedesktop.org/show_bug.cgi?id=21001> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-07-27Revert "Auto-adjust edges if values fall outside queried min/max ranges. ↵Peter Hutterer1-23/+1
(#21001)" This reverts commit afb60a0b2497c5d08cbd1739fa8ae6585c428881. From comment 24 to #21001: I've been running this code for over a week now and I'm not happy with it. Once I move over to the right, the scroll-edge becomes so small that it's hard to trigger. Source of the problem is the information provided by the kernel. The kernel hands us a min/max value for the synaptics pads but this value is not reflective of the actual physical boundaries. The other dimensions are based on these min/max ranges. My RightEdge setting by default is 5129, after moving to the right it becomes 5677. The announced max for x is 5472. We have model-specific edge settings and in the case of synaptics the width of the scroll area is 7% of the total width (based on min/max). This works, but obviously only because the max is wrong. I've tried upping this to 15% and it works fine but unless the edge is adjusted the scroll bar takes over too much of the pad. So right now I'm inclined to revert this patch and just ditch any auto-adjustment of scroll edges whatsoever. This way, the original setting is maintained even if we reach outside of the min/max area. Conflicts: src/synaptics.c Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-07-17Add active area outside of which movements, scrolling, tapping are ignored.Alberto Milone1-0/+1
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>
2009-07-16Add configurable x/y resolution to fix sensitivity on wide touchpads.Tero Saarni1-0/+5
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>
2009-07-10Auto-adjust edges if values fall outside queried min/max ranges. (#21001)Peter Hutterer1-1/+23
The kernel provides min/max for x/y values but still allows devices to send coordinates outside this range. If the edges are autodetected, re-adjust the edge settings to fit within the new effective min/max range. When the edges change the property needs to be updated accordingly. This can't be done immediately as changing properties requires mallocs and HandleState is called during the signal handler. Instead, set a timer to be called when the server isn't busy and update the property then. The delay between setting the timer and sending the property notify event also reduces the number of events sent, the property event includes the latest state only. If the edges were configured by the user, don't re-adjust. This obsoletes the SpecialScrollAreaRight option as it provides the same functionality, without the side-effects triggering 21001. X.Org Bug 21001 <http://bugs.freedesktop.org/show_bug.cgi?id=21001> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-13Add TapAndDragGesture option and gestures property.Erkin Bahceci1-0/+1
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>
2009-05-08Purge SynapticsHWInfo stuff, move it into proto_data.Peter Hutterer1-1/+1
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>
2009-05-08Add model-specific edges for appletouch.Jeremy Huddleston1-1/+2
Needs around 8.5% to be useable. I created a table to iterate through the different products rather than using if/else branches. I can enumerate the appletouch product_ids, but I suspect they will all be around the same range (hence the PRODUCT_ANY). If another product id shows different behavior, we can just add an entry to the table as appropriate. I also changed the default eheight to be 5.4% to match the spec. Reported-by: Jeremy Huddleston <jeremyhu@freedesktop.org> Signed-off-by: Jeremy Huddleston <jeremyhu@freedesktop.org> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
2009-05-05Add TouchpadModel specifier and scale the edges accordingly. (#21214)Peter Hutterer1-0/+8
ALPS models need different edge settings than synaptics pads to make the edges work propertly. So try to auto-detect the model (eventcomm anyway) and set the edges accordingly. New edge defaults are: synaptics: 7% of the total width alps: 15% of the total width unknown: 4% of the total width (see Synaptics UI guide) X.Org Bug 21214 <http://bugs.freedesktop.org/show_bug.cgi?id=21214> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Christoph Brill <egore911@egore911.de> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
2009-04-26Remove Synaptics SHM configuration bits.Peter Hutterer1-4/+67
The only thing we still export through SHM is the hardware state.
2008-10-28Add support for touchpads (such as Elantech) that do not report pressureDmitry Torokhov1-0/+1
Change the driver to react to BTN_TOUCH if device does not report ABS_PRESSURE since there are touchpads (such as Elantech) that do not support pressure reading but otherwise are perfectly useable in absolute mode. Also fix error checking of ioctl calls (positive return value is not an error, only negative is). Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
2008-10-03Remove repeater functionality.Magnus Kessler1-1/+0
Remove the repeater functionality completely from the synaptics touchpad driver. It is buggy in its current implementation and its usefulness is questionable. According to the INSTALL file, the repeater is there only for testing. In fact, if a supported device is found even a configured repeater fifo is automatically disabled. For most users the functionality is therefore irrelevant and can be confusing. If I understand the workings of the repeater correctly, a developer could instead just read the data directly from an unsupported device's character special file under /dev or /dev/input. With today's more dynamic device configuration possibilities via udev and hal it's also less likely that the synaptics driver would silently block another devices data, this situation being for what the repeater functionality seems to have been introduced in the past. Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
2008-09-17Improved defaults based on capability detection and auto scalingHenrik Rydberg1-0/+6
This patch sets default parameters based on available buttons and multi-touch features. It also adds auto-scaling for parameters based on pressure and finger width. Signed-off-by: Henrik Rydberg <rydberg@euromail.se> Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
2008-09-09Improve edge autodetection and accel.Peter Hutterer1-0/+1
The synaptics spec specifies "typical axis ranges" for synaptics devices. Based on these typical ranges, calculate edge coordinates and apply the same proportions to the device at hand. Based on the hard-coded ranges and acceleration, calculate accel for autodetected ranges in the same proportions.
2008-09-09Don't lose button up event if timeout is cancelled in the same ReadInput cyclePeter Hutterer1-1/+3
On a left/right button press, middle button emulation springs into action and changes the reported hw state. It then returns a delay that is supposed to set a timer. No button event is posted to the server, the timer ensures that it'll be posted later. If however - in the same cycle - the button up is reported, but with a hardware time > middle emulation timeout, the middle button emulation is canceled. The hw state is reset to button down, and processing continues, reporting the button down event. Since this is in the same cycle, the new delay overrides the previous one and the timer is never set. Introduce a new state into MB emulation that forces the click event if the above situation occurs. Red Hat Bug 233717 <http://bugzilla.redhat.com/show_bug.cgi?id=233717>
2008-08-08Move synaptics.h into include/, create synapticsstr.h for private structs.Peter Hutterer1-0/+142
This just separates driver-internal stuff (synapticsstr.h) from external stuff used for the SHM config.