summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-03-18Support for N-Trig devices that don't send Tracking IDmultitouch-subdevsBenjamin Tissoires2-10/+112
In case of devices that don't send the tracking ID, the driver has to track the different touches to keep their tracking ID. This is needed as the device may not send the touches is the same order each time. Signed-off-by: Benjamin Tissoires <tissoire@cena.fr> Signed-off-by: Carlos Garnacho <carlosg@gnome.org>
2010-03-15Wait until EV_SYNC to process/send MT events.Carlos Garnacho2-41/+87
In the case where tracking ID is not offered by the device, and the event order is not guaranteed (N-Trig device behaves like this), we need to collect all MT events in order to assign the most likely subdev to an event. If no closest subdevice is found to an MT event, a new subdev is used to route it. If the tracking ID is provided, the events are directly correlated with the matching subdevice in EV_SYNC. Signed-off-by: Carlos Garnacho <carlosg@gnome.org> Signed-off-by: Benjamin Tissoires <tissoire@cena.fr>
2010-03-15Force the Tracking ID valuator in case of a multitouch deviceBenjamin Tissoires1-0/+15
Some devices, such as the N-Trig one, does not give the tracking ID. Thus, to keep consistency with the other mt devices, this patch forces this axe to exist. Signed-off-by: Benjamin Tissoires <tissoire@cena.fr> Signed-off-by: Carlos Garnacho <carlosg@gnome.org>
2010-03-15Add a timer to send the release eventsBenjamin Tissoires2-0/+43
As the kernel does not send the release events, but just notifies that the tracking ID is not used anymore by not sending it, this patch adds a timer in case no data is received, thus declaring all remaining touches as released. Signed-off-by: Benjamin Tissoires <tissoire@cena.fr>
2010-03-15Protect against segfault.Benjamin Tissoires1-5/+8
In case of a non-hotplug definition of multitouch device, it seems that the option driver is not set. Thus, the new subdev is not created and introduce segfault. Signed-off-by: Benjamin Tissoires <tissoire@cena.fr>
2010-03-15Process of MT eventsBenjamin Tissoires2-8/+178
* at each MTSyncReport, copy the valuators into the Subdev that has the same trackingID. * then send EV_SYN to actually send the event to the xserver. Signed-off-by: Benjamin Tissoires <tissoire@cena.fr> Signed-off-by: Carlos Garnacho <carlosg@gnome.org>
2010-03-15Allow creation of subdevices for non-hotplugged devices.Benjamin Tissoires1-0/+4
This patch adds two options to the original device. Without them, the function NewInputDeviceRequest does not create the new device and thus forcing us not being able to use multitouch. Signed-off-by: Benjamin Tissoires <tissoire@cena.fr>
2010-03-15Handling the creation / destruction of mt subdevices by the property "Evdev ↵Benjamin Tissoires2-0/+165
MultiTouch" This patch creates the sub-devices basing on the property, "Evdev Multitouch". By reverting "Evdev Multitouch" at 0, the driver came back to its original state, i.e. no multitouch but touchscreen emulation. Signed-off-by: Benjamin Tissoires <tissoire@cena.fr>
2010-03-15Adding to evdev the virtual subdevices that manage the multitouch partBenjamin Tissoires2-8/+109
This patch introduces in the evdev driver the sub-devices that will be used in multitouch. Note that they are not used right now. Signed-off-by: Benjamin Tissoires <tissoire@cena.fr>
2010-03-15Take the tracking ID event into accountBenjamin Tissoires2-0/+5
If the device reports the tracking id, this patch allows the driver to know the current id. Signed-off-by: Benjamin Tissoires <tissoire@cena.fr>
2010-03-15Added the names of the valuators for the multitouch propertiesBenjamin Tissoires2-0/+48
The driver has to know the correct labels of the ABS_MT_* events. However, to keep compatibility with older xserver that don't define the corresponding labels, this patch reinject them in the .h. Signed-off-by: Benjamin Tissoires <tissoire@cena.fr>
2010-03-15Detection of multitouch devicesBenjamin Tissoires2-1/+41
This patch makes nothing except detecting multitouch devices and putting this detection in the log. Signed-off-by: Benjamin Tissoires <tissoire@cena.fr>
2010-02-25emuMB: default to disabled mouse button emulation for touchscreens.Oliver McFadden4-17/+22
Because touchscreens only use one button (see EvdevProcessKeyEvent()) EvdevMBEmuFilterEvent() never calls EvdevMBEmuEnable(..., FALSE) to disable emulation. This results in touchscreen devices incurring a delay of Emulate3Timeout (typically 50 ms.) Default to MBEMU_DISABLED for touchscreen devices (unless overwritten by Xorg.conf.) Signed-off-by: Oliver McFadden <oliver.mcfadden@nokia.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-18man: fix man page formatting for option EmulateWheel.Peter Hutterer1-0/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-11config: move CWARNFLAGS from configure.ac to Makefile.amGaetan Nadon2-2/+3
Compiler warning flags should be explicitly set in the makefile rather than being merged with other packages compiler flags. Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-01-19Implement XSetDeviceMode request handlerAndrej Gelenberg3-2/+62
Implement XSetDeviceMode request handler for evdev. Devices with absolute axes can be switched in relative mode or absolute mode. Devices with relative axes can be switched only in relative mode. Other devices return BadMatch, cause they have no valuators and don't report motion events. New option "Mode" force devices with absolute axes to work in relative or absolute mode. Need xinputproto. Signed-off-by: Andrej Gelenberg <andrej.gelenberg@udo.edu>
2010-01-15Update Sun license notices to current X.Org standard formAlan Coopersmith2-43/+37
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
2009-12-08allow wheel emulation to work with absolute-position devicesDima Kogan2-5/+18
Signed-off-by: Dima Kogan <dkogan@cds.caltech.edu> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-12-07removed unnecessary static declarationsDima Kogan1-3/+3
Signed-off-by: Dima Kogan <dkogan@cds.caltech.edu> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-12-02Fix up BTN_TOUCH handling for non-button tablets.Peter Hutterer1-2/+10
BTN_TOOL_* is treated as tool, just like before. BTN_TOUCH on the other hand may need to be treated as a button left press. This again requires a button class. Tested on an HP Touchsmart and a Wacom tablet. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-12-01Only init the calibration property for absolute devices.Peter Hutterer1-1/+1
Relative devices can't be calibrated anyway so why bother. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-12-01Report initial calibration parameters.David Woodhouse1-2/+16
Where an initial calibration is provided through the Calibration option to the driver, it wasn't being exposed in the 'Evdev Axis Calibration' property. Remedy that... Signed-off-by: David Woodhouse <David.Woodhouse@intel.com> Acked-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-12-01Swap axes before applying touch screen calibration.David Woodhouse1-6/+7
When the SwapAxes option is set, the X and Y axes in calibration should be labelled as the user perceives them -- not as the kernel sends them. Currently, we apply the X-axis calibration to the X-axis of the input, and then do the axis swapping so we've actually applied the X-axis calibration to what the user sees as the Y-axis. This patch changes the order of the operations, so that the axes are swapped before the calibration is applied. Signed-off-by: David Woodhouse <David.Woodhouse@intel.com> Acked-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-12-01Fix a comment, EV_CNT is available since 2.6.24Peter Hutterer1-1/+1
Introduced in the kernel as 2.6.23-6147-g7b19ada. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-11-23Makefile.am: add ChangeLog and INSTALL on MAINTAINERCLEANFILESGaetan Nadon1-0/+1
Now that the INSTALL file is generated. Allows running make maintainer-clean.
2009-11-19INSTALL, NEWS, README or AUTHORS files are missing/incorrect #24206Gaetan Nadon1-1/+0
Automake 'foreign' option is specified in configure.ac. Remove from Makefile.am
2009-11-19INSTALL, NEWS, README or AUTHORS files are missing/incorrect #24206Gaetan Nadon2-3/+6
Add missing INSTALL file. Use standard GNU file on building tarball README may have been updated Remove AUTHORS file as it is empty and no content available yet. Remove NEWS file as it is empty and no content available yet.
2009-11-19Several driver modules do not have a ChangeLog target in Makefile.am #23814Gaetan Nadon2-5/+4
The git generated ChangeLog replaces the hand written one. Update configure.ac to xorg-macros level 1.3. Use XORG_DEFAULT_OPTIONS which replaces four XORG_* macros Update Makefile.am to add ChangeLog target if missing Remove ChangeLog from EXTRA_DIST or *CLEAN variables This is a pre-req for the INSTALL_CMD
2009-11-19.gitignore: use common defaults with custom section # 24239Gaetan Nadon1-13/+63
Using common defaults will reduce errors and maintenance. Only the very small or inexistent custom section need periodic maintenance when the structure of the component changes. Do not edit defaults.
2009-11-19Set all valuators for relative motion events (#24737)Bartosz Brachaczek1-1/+1
We should process all the deltas reported by a relative motion device, otherwise some devices such as A4Tech X-750F or similar may trigger a situation when the `v` array contains random values (it isn't initialized anywhere) and later we process them and in effect the mouse cursor "jumps" on the screen. I'm not sure why, but we also must be sure that the `first` and `last` variables reflect the axis map, otherwise the mouse cursor "jumps" on the screen when clicking mouse buttons in some rare cases reported by Bartek Iwaniec on Bugzilla. That's why a simple initialization of the `v` array with zeros isn't sufficient. X.Org Bug 24737 <http://bugs.freedesktop.org/show_bug.cgi?id=24737> Signed-off-by: Bartosz Brachaczek <b.brachaczek@gmail.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-11-05Relax checks when reopening devicesDmitry Torokhov1-55/+71
When checking whether we are dealing with the same device as before when we try to reopen it evdev should not require exact match of entire keymap. Users should be allowed to adjust keymaps to better match their hardware even after X starts. However we don't expect changes in [BTN_MISC, KEY_OK) range since these codes are reserved for mice, joysticks, tablets and so forth, so we will limit the check to this range. The same goes for absinfo - limits can change and it should not result in device being disabled. Also check the length of the data returned by ioctl and don't try to compare more than we were given. [peter: moved the key comparison below the led+abs comparison] Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-11-02Fix drag-lock property handler for multiple draglock buttons.Peter Hutterer1-4/+5
Parsing of the values was wrong. Given an input of 1 2 3 4, button 1 sets the lock for button 2 and button 3 sets the lock for button 4. This also means we need to return BadMatch if the property isn't a multiple of 2. Red Hat Bug 524428 <https://bugzilla.redhat.com/show_bug.cgi?id=524428> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-10-26Forward keycodes > 255Peter Hutterer1-14/+0
The server doesn't handle them yet but eventually it should learn. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-10-20Remove the reopen timer logic.Peter Hutterer3-119/+24
This logic was needed in older kernels that sometimes gave error messages after coming back from resume (2.6.27 release kernels). I haven't seen any log files that needed this reopen timer in a long time, suggesting that need for it is gone. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-10-19evdev 2.3.0xf86-input-evdev-2.3.0Peter Hutterer1-1/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-10-15Convert IgnoreAbsolute/RelativeAxes options into trinary state.Peter Hutterer2-11/+49
The Xen Virtual Pointer device exports both absolute and relative axes from the kernel device. Which coordinates are used is a run-time decision and depends on the host-specific configuration. 0a3657d2ee62f4086e9687218cb33835ba61a0b3 broke these devices, and they are now unusable out-of-the-box as there is no configuration to cover them. This patch converts the IgnoreAbsoluteAxes and the IgnoreRelativeAxes configuration options into a trinary state. 1. If unset, configure the device as normal by trying to guess the right axis setup. 2. If set to true, ignore the specific axis type completely (except for wheel events). 3. If set to false, explicitly 'unignore' the axis type, alwas configuring it if it is present on the device. This setting introduces seemingly buggy behaviour (see Bug 21832) 1. and 2. replicate the current driver behaviour. The result of 3. is that is that if a device has absolute axes and the options set to false, both axes will be initialized (absolute last to get clipping right). This requires axis labelling priorty to switch from relative first to absolute first. Relative events are forwarded into the server through the absolute axes, the server scales this into the device absolute range and everyone is happy. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-10-15Fix copy/paste typo in comment.Peter Hutterer1-1/+1
2009-10-13Fix typo, use uppercase like the other messagesPeter Hutterer1-4/+4
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-10-13evdev: Support the "Calibration" string option.Oliver McFadden2-23/+44
Originally based on a patch from Daniel Stone, this commit allows for the calibration factors to be set either from Xorg.conf or via HAL. Previously the only way was via the properties interface. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-10-10Finalize the middle button emulation when a read error occurs (#23048)Peter Hutterer1-0/+1
If a read error occurs, remove the block and wakeup handlers for middle mouse button emulation. Otherwise, they'll still be around after the device has been reopened and overwritten with the new ones created by EvdevOn. Once this happened, future removal of the device can lead to a server crash. X.Org Bug 23048 <http://bugs.freedesktop.org/show_bug.cgi?id=23048> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-10-08evdev 2.2.99.2xf86-input-evdev-2.2.99.2Peter Hutterer1-1/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-10-07Add explicit options to ignore relative or absolute axes.Peter Hutterer2-8/+34
The X server cannot deal with devices that have both relative and absolute axes. Evdev tries to guess wich axes to ignore given the device type and disables absolute axes for mice and relative axes for tablets, touchscreens and touchpad. This guess is sometimes wrong and causes exitus felis domesticae parvulae. Two new configuration options are provided to explicitly allow ignoring an axis. Mouse wheel axes are exempt and will work even if relative axes are ignored. No property, this option must be set in the configuration. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Acked-by: Daniel Stone <daniel@fooishbar.org>
2009-09-30Remove unused has_xy.Peter Hutterer1-4/+1
has_xy is only ever set, but not used for anything else. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-23emuWheel: fix signed/unsigned screwupPeter Hutterer1-3/+5
This patch fixes wheel emulation on buttons other than 0. Reported-by: Andy Neitzke Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-11Require xorg-macros 1.3 and XORG_DEFAULT_OPTIONSPeter Hutterer1-8/+4
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-08-20Only take the driver-internal button mapping to count buttons (#23405)Peter Hutterer1-2/+1
Regression: If a user has multiple buttons mapped to the same button number, the number of buttons counted is set to a wrong value. e.g. a button mapping of 1 1 1 for a mouse with three buttons would only initialize 1 button to the X server. In the future, the user cannot change this button mapping as the server only knows about one button. The user-supplied button map (option ButtonMapping) shouldn't matter when counting the buttons. Only the driver-internal mapping (BTN_0 -> button 1, etc.) matters. X.Org Bug 23405 <http://bugs.freedesktop.org/show_bug.cgi?id=23405> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-08-18Allow 0 as wheel emulation button for unconditional scrolling (#20529)Dima Kogan3-7/+12
If wheel emulation is on and the emulation button is 0, then any x/y motion of the device is converted into wheel events. The devices becomes a scrolling-only device. Signed-off-by: Dima Kogan <dkogan@cds.caltech.edu> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-08-18Restrict wheel emulation to a single axis at a time.Peter Hutterer1-7/+21
Wheel emulation works for both horizontal and vertical axes. Thus, if a device doesn't move in perfect straight line, scroll events build up on the respective other axis. In some clients, scroll wheel events have specific meanings other than scrolling (e.g. mplayer). In these clients, erroneous scrolling events come at a high cost. Thus, if a scroll wheel event is generated for one axis, reset the inertia of the other axis to 0, avoiding the buildup of these erroneous scrolling events. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-08-14man: fix documentation for EVDEV_PROP_WHEEL_BUTTONPeter Hutterer1-1/+1
0 doesn't disable it, it's still treated like a button number. copy/paste error. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-08-14evdev 2.2.99.1xf86-input-evdev-2.2.99.1Peter Hutterer1-1/+1