aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* code-remap for 2.9.0code-remap-2.9.1Gianni Ceccarelli2015-03-02
| | | | | Thanks to Tristan King <tristan.king@gmail.com> for reminding me to do it and checking that it works
* evdev 2.9.1Peter Hutterer2014-11-26
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Remove three unused #definesPeter Hutterer2014-11-07
| | | | | | Obsolete since 768c25a99b2f4ec07993eb15a0f05a5e22b5c695 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Don't pass superfluous arguments to EvdevPost*EventsÉric Brunet2014-09-29
| | | | | | | | | | | | The functions EvdevPostProximityEvents, EvdevPostRelativeMotionEvents, EvdevPostAbsoluteMotionEvents and EvdevPostQueuedEvents are only called by EvdevProcessSyncEvent. These functions take as arguments an array of valuators which is set by EvdevProcessSyncEvent to contain ... nothing. This patch changes the prototype of the four functions, their definitions and the way they are called to remove the useless array of valuators. Signed-off-by: Éric Brunet <Eric.Brunet@lps.ens.fr> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Drop some unused #definesPeter Hutterer2014-08-29
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* If only IgnoreRelativeAxes is set, init like a normal relative devicePeter Hutterer2014-08-18
| | | | | | | | | | | | In the current code, if only IgnoreRelativeAxes is set, the code would go on and force absolute axes to initialize even if the relative axes were successfully initialized. Evdev gives precedence to relative axes anyway, initializing absolute axes if the relative axes failed. Thus, if we explicitely want relative axes but leave the abs axes as-is, proceed as normal. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Fix axis initialization for devices with abs x/y and rel scrollwheelsPeter Hutterer2014-08-18
| | | | | | | | | | | | | | The Xen Virtual Pointer device has ABS_X, ABS_Y and REL_WHEEL. If smooth scrolling is detected, the current code would first initialize relative axes for scrolling and immediately overwrite those axes when the abs valuators are written out. This patch fixes the default case only, in the case of a device setting the two Ignore*Axis options both to "off", the axes are still overwritten. The wheels will work, other axes only if the same number of abs axes exists. And it keeps the current memory leak too, but it's marked with a FIXME now. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Make the slot-state per slotPeter Hutterer2014-08-18
| | | | | | | | | | | | | | | | | The previous approach only had the slot state for the current slot. If we changed slots, that means we lost the information if the slot was ever initialized. If the ABS_MT_TRACKING_ID was never received, the slot would still update and try to send events (which the server refused with a warning). Avoid this by having a per-slot state and a dirty bit that tells us if the current slot updated at all. If we don't get the tracking ID, leave the slot empty and refuse any further events from that touch. This quashes the various "unable to find touch point 0" warnings caused if a touchpoint starts before the device is enabled. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Walter Harms <wharms@bfs.de>
* evdev 2.9.0Peter Hutterer2014-05-20
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Use the server's device list for duplicate detection (#78309)Peter Hutterer2014-05-07
| | | | | | | | | | | | | | | | | | | EvdevAddDevice/EvdevRemoveDevice keep a reference to the device to detect duplicate devices based on the dev_t. EvdevAddDevices was called during PreInit, EvdevRemoveDevice was called during DEVICE_CLOSE. That makes it imbalanced if the device succeeds PreInit but the server skips everything else because MAX_DEVICES is exceeded. So for all devices after MAX_DEVICES, we'd add a reference but never remove it, eventually reading/writing past evdev_devices. The server keeps the list of devices for us anyway, so remove the copy of all the pointers and instead run through the device list the server gives us. X.Org Bug 78309 <http://bugs.freedesktop.org/show_bug.cgi?id=78309> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
* evdev 2.8.99.1Peter Hutterer2014-04-29
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Map REL_DIAL to horizontal scrolling (#73105)Peter Hutterer2014-04-29
| | | | | | | | | | | | | | This was the original behavior introduced in f77410e1f97d394e98c854fd174f712666b0544c and stayed that way until smooth scrolling erroneously added it as vertical axis in b450efdf95999cad08de23ce069f04a66bdae24b. Revert to horizontal scrolling to restore the previous behaviour - which unbreaks scrolling on Microsoft mice. This effectively reverts 54a3120e339e55fc4721543abb15692c3e9ede09 too. X.Org Bug 73105 <http://bugs.freedesktop.org/show_bug.cgi?id=73105> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Revert "Map REL_DIAL to horizontal scrolling (#73105)"Peter Hutterer2014-04-29
| | | | | | | Whoops, the vertical axis is swapped, so when changing the axis we also need to change the direction. This reverts commit 16c85cbeacb721ed365c6240aabaad921b811fe0.
* Map REL_DIAL to horizontal scrolling (#73105)Peter Hutterer2014-04-29
| | | | | | | | | | | | | | | This was the original behavior introduced in f77410e1f97d394e98c854fd174f712666b0544c and stayed that way until smooth scrolling erroneously added it as vertical axis in b450efdf95999cad08de23ce069f04a66bdae24b. Revert to horizontal scrolling to restore the previous behaviour - which unbreaks scrolling on Microsoft mice. This effectively reverts 54a3120e339e55fc4721543abb15692c3e9ede09 too. X.Org Bug 73105 <http://bugs.freedesktop.org/show_bug.cgi?id=73105> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
* evdev: Add support for server managed fdsHans de Goede2014-03-10
| | | | | Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Fix wheel emulation for absolute device (#68415)Peter Hutterer2013-10-22
| | | | | | | | | | | | | wheel emulation, for some reasons beyond time, got the value from pEvdev->vals, then set the value back into pEvdev->vals. Alas, that value is always 0, hence oldValue is zero and the delta is nil. If we're not in relative (touchpad) mode, store the current value in old_vals, so they're retrievable for the next event. X.Org Bug 68415 <http://bugs.freedesktop.org/show_bug.cgi?id=68415> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Export smooth scroll settings as an XInput property.Peter De Wachter2013-10-21
| | | | | | | | | A new property "Evdev Scrolling Distance" is created that holds three values (vertical, horizontal and dial). Signed-off-by: Peter De Wachter <pdewacht@gmail.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Add configuration options for smooth scrolling.Peter De Wachter2013-10-21
| | | | | | | | | | | This patch creates three new xorg.conf options, VertScrollDelta, HorizScrollDelta and DialDelta, which adjust the sensitivity of smooth scrolling. These options take a positive integer, default value is 1. Signed-off-by: Peter De Wachter <pdewacht@gmail.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Use num_slots where appropriatePeter Hutterer2013-10-14
| | | | | | | This was supposed to be added in 43e270fb7a10da20ab89dd699839c1cb6df119b4, but got lost somehow. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Merge branch 'libevdev'Peter Hutterer2013-10-07
|\
| * Use libevdev as backendPeter Hutterer2013-10-04
| | | | | | | | | | | | | | | | | | | | | | | | Removes the need to ioctl manually and check bits, with all the dangers that come with that. libevdev is much better prepared for invalid values, OOB checks, etc. Plus, we get almost free SYN_DROPPED handling as well which we didn't have before. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Adam Jackson <ajax@redhat.com>
| * Use helper function for counting slotsPeter Hutterer2013-09-10
| | | | | | | | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Adam Jackson <ajax@redhat.com>
| * Drop ABS_MT_SLOT minimum - the kernel guarantees a minimum of 0Peter Hutterer2013-09-10
| | | | | | | | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Adam Jackson <ajax@redhat.com>
* | bump to 2.8.99Peter Hutterer2013-10-07
| | | | | | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* | Map REL_DIAL to vertical scrollingPeter De Wachter2013-10-07
|/ | | | | | | | | This makes the absolute axis codepath behave the same as the relative axis path. Signed-off-by: Peter De Wachter <pdewacht@gmail.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Remove a commentPeter Hutterer2013-08-28
| | | | | | | | This comment is now in the wrong place. It was moved when abs support for wheel emulation was added but is now only confusing. Remove it altogether, the code is quite obvious what it does. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Don't use mtdev for protocol B devicesPeter Hutterer2013-08-28
| | | | | | | | | | | If a device has ABS_MT_SLOT, mtdev merely reads the events and returns them to the caller as-is. For this we don't need mtdev, we can just handle those events ourselves. This patch switches to the mtdev plumbing layer that takes events and converts them instead of reading them off the fd. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Write a SYN_REPORT after the last LEDPeter Hutterer2013-08-13
| | | | | | | | | | When writing LED values to the device, append a SYN_REPORT to the list to ensure other clients are updated immediately. Otherwise, the LED events will be queued and not sent to other clients until the next input event arrives. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org>
* evdev 2.8.1xf86-input-evdev-2.8.1Peter Hutterer2013-07-11
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Don't allow a wheel emulation inertia of 0 (#66125)Peter Hutterer2013-06-27
| | | | | | | | Inertia of 0 results in an infinite loop of events being sent to the server. X.Org Bug 66125 <http://bugs.freedesktop.org/show_bug.cgi?id=66125> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Use EvdevBitIsSet, not the server's BitIsOnPeter Hutterer2013-05-31
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Drop cached name and led_bitmask - nothing reads thisPeter Hutterer2013-05-31
| | | | | | Both fields are write-only as of xf86-input-evdev-2.5.99.902-1-g1ced7ec Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Switch default model to pc104.Peter Hutterer2013-05-31
| | | | | | | | | | | | | | | | As of xkeyboard-config 1.9, the evdev model is hidden (c887d2876) The server switched to pc105 with version 1.8 (1df4bd601). The evdev model resolves to pc104 anyway, so this commit has no real effect other than to switch from a catch-all rule to explicit. Use pc104 so this is easy to find for those investigating the code and wondering why. pc104 is the 'correct' geometry for the us layout, which is the default after all. Switching to pc105 would show keys missing if no model is set (e.g. on uk/de layouts) but it would be the wrong layout for the default. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Acked-by: Daniel Stone <daniel@fooishbar.org>
* Fail to set up axes for devices that only have MT axes but no ABS_X/Y ↵Peter Hutterer2013-05-01
| | | | | | | | | | | | | | equivalents (#64029) The kernel should give us ABS_X/Y for backwards compat but some devices don't. For now, ignore these devices as evdev is not suited to handle this yet and will crash if a device is set up without axes (i.e. pEvdev->vals == NULL) and later receives an event from an MT axis. X.Org Bug 64029 <http://bugs.freedesktop.org/show_bug.cgi?id=64029> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
* Add option TypeName (#62831)Peter Hutterer2013-04-16
| | | | | | | | | | | | | | | | evdev tries to assign the right XI 1.x type-name based on various device capabilities. In some cases, that fails. e.g. the Mionix Naos 5000 mouse looks like a keyboard. And we assign a keyboard type in that case since there are plenty of keyboards that also advertise some axes or others. Add a new option TypeName to allow for system-wide configuration of such devices in a quirks file. This can also be used to address #55867 X.Org Bug 62831 <http://bugs.freedesktop.org/show_bug.cgi?id=62831> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* evdev 2.8.0xf86-input-evdev-2.8.0Peter Hutterer2013-03-26
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Return BadValue if EvdevOpenMTDev failsPeter Hutterer2013-02-12
| | | | | | | | | | | | | | FALSE == Success, so if we fail during EvdevOpenMTDev, the caller thinks that everything worked fine, proceeds to set up the fd, etc. This may later cause a crash, when a device comes back later as different device and posts axis events where we didn't configure axes in the first place. Note: Unclear why there was no udev event received for the device being removed and coming back as different device though. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Make errors on EVIOCGBIT more obviousPeter Hutterer2013-02-12
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Always init axis mapping for the first two rel axes (#59784)Peter Hutterer2013-01-25
| | | | | | | | | | | | | | Fixes regression introduced in 2f67509b53b27dd7f51ca2aadd19605aee613a61. If evdev is used for touchpads, the abs axis movement is converted to a rel movement. Without the two relative axes initialized, the events are discarded. Axes 0 and 1 are always x/y anyway unless specifically configured otherwise. X.Org Bug 59784 <http://bugs.freedesktop.org/show_bug.cgi?id=59784> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Merge branch 'touch-axis-swap'Peter Hutterer2013-01-25
|\
| * Handle axis swap, calibration, and inversion for touch events (#59340)Peter Hutterer2013-01-14
| | | | | | | | | | | | | | X.Org Bug 59340 <http://bugs.freedesktop.org/show_bug.cgi?id=59340> Reported-by: Bastien Nocera <hadess@hadess.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
| * Move calibration adjustments to helper functionPeter Hutterer2013-01-14
| | | | | | | | | | | | No functional changes. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
| * Move valuator swapping into a helper functionPeter Hutterer2013-01-14
| | | | | | | | | | | | No functional changes. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
| * Localise tmp variablePeter Hutterer2013-01-14
| | | | | | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* | Allow relative scroll valuators on absolute devices (#54387)Peter Hutterer2013-01-23
| | | | | | | | | | | | | | | | | | Special-case RHEL_WHEEL, RHEL_HWHEEL and REL_DIAL to add scroll valuators for those axes in addition to the absolute axes. X.Org Bug 54387 <http://bugs.freedesktop.org/show_bug.cgi?id=54387> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* | Split rel and abs axis mapping into two separate arraysPeter Hutterer2013-01-23
| | | | | | | | | | | | | | This will enable a device to have relative scrolling axes in addition to absolute axes (required by the QEMU tablet). Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* | Move some stuff into the new alloc functionPeter Hutterer2013-01-23
| | | | | | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* | Move allocation of EvdevRec into a helper functionPeter Hutterer2013-01-23
| | | | | | | | | | | | Makes it easier to initialise everything to the right values. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* | autogen.sh: Implement GNOME Build APIColin Walters2013-01-16
| | | | | | | | | | | | http://people.gnome.org/~walters/docs/build-api.txt Signed-off-by: Adam Jackson <ajax@redhat.com>
* | configure: Drop AM_MAINTAINER_MODEAdam Jackson2013-01-16
|/ | | | Signed-off-by: Adam Jackson <ajax@redhat.com>