aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
| * Use a new "Virtual Device" boolean property to mark virtual devicesPeter Hutterer2011-11-11
| | | | | | | | | | | | | | | | | | Use udev to check for the device's sysfs path, if it contains LNXSYSTM it's a kernel-emulated device. This property can then be used to determine if there are any real devices connected, allowing the desktop environment to e.g. turn off the touchpad whenever there's a mouse attached. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* | Fix relative events with swapped axesPaulo Zanoni2011-12-16
| | | | | | | | | | | | | | | | After we swap the axes, we only call valuator_mask_set for axes that are not zero, so we need to unset the axes that became zero when swapped. Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* | Fix absolute events with swapped axesPaulo Zanoni2011-12-15
|/ | | | | | | | | | | | | We were correctly swapping the valuator values, but we were not calling valuator_mask_unset() when needed, so the cursor kept jumping to the edges. This patch does the swapping before the main "for", so we don't need to store unswapped_{x,y} and unswapped_isset_{x,y} even when we don't need to swap. Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Move misplaced #endif caused by smooth-scrolling mergePeter Hutterer2011-11-11
| | | | | | | Bad conflict resolution in xf86-input-evdev-2.6.0-30-g745fca0 Reported-by: Sebastian Glita <glseba@yahoo.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Bump to 2.6.99Peter Hutterer2011-11-09
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Merge branch 'smooth-scrolling'Peter Hutterer2011-11-09
|\ | | | | | | | | | | | | Conflicts: src/evdev.c Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
| * Support smooth scrolling on REL_WHEEL, REL_HWHEEL and REL_DIALPeter Hutterer2011-11-09
| | | | | | | | | | | | | | | | | | | | Automatic smooth scrolling setup for these axes, with REL_WHEEL and REL_DIAL both mapping into vscrolling. REL_WHEEL is the preferred axis. Mouse wheel emulation is not yet updated for smooth scrolling. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org>
* | Don't crop long value from EvdevBitIsSet.Peter Hutterer2011-11-04
| | | | | | | | | | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Chase Douglas <chase.douglas@canonical.com> Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
* | emuThird: Use xf86SetIntOption, not xf86SetBoolOption for integer valuesJools Wills2011-10-31
| | | | | | | | | | | | Signed-off-by: Jools Wills <jools@oxfordinspire.co.uk> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* | type-safe inline functions for bitmask manipulationMax Schwarz2011-10-24
|/ | | | | | | | | We can't use BitIsSet/SetBit from the server (inputstr.h) since they operate on byte arrays. EvdevSetBit is added in preparation for the "smooth-scrolling on wheel emulation" patch. Signed-off-by: Max Schwarz <Max@x-quadraht.de> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Exit axis labelling if axes are neither rel nor absPeter Hutterer2011-08-15
| | | | | | | No actual effect since labels_len is always 0 anyway but let's make the return more explicit. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* xf86-input-evdev: Return proper default for unknown values in ↵Terry Lambert2011-07-18
| | | | | | | | pInfo->device_control. Signed-off-by: Terry Lambert <tlambert@chromium.org> Reviewed-by: Stephane Marchesin <marcheu@chromium.org> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Remove unused misc_label and valPeter Hutterer2011-06-15
| | | | | | | | | | | | | | | evdev.c: In function 'EvdevInitAxesLabels': evdev.c:2192:11: warning: variable 'misc_label' set but not used [-Wunused-but-set-variable] obsolete with 880ad1e19afd83ac115948b67d4049e16cb12df0 emuWheel.c: In function 'EvdevWheelEmuPreInit': emuWheel.c:252:10: warning: variable 'val' set but not used [-Wunused-but-set-variable] obsolete with b0737bdbd1f6e601eb4984b6f4cb49279190984c Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org>
* Print abs axes ranges on verbosity 6.Peter Hutterer2011-06-15
| | | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org>
* Require server 1.10Peter Hutterer2011-06-15
| | | | | | | | | We require ABI 12.2 in the driver, enforce it through pkg-config. Technically ABI 12.2 is first available in 1.9.99.902 but 1.10 looks so much nicer. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org>
* Set prop_product_id undeletableDaniel Kurtz2011-06-15
| | | | | | | prop_invert was accidentally being set undeletable twice. Signed-off-by: Daniel Kurtz <djkurtz@google.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Export device node as property.Peter Hutterer2011-05-27
| | | | | | | | | | | | | There is currently no mapping between XI devices and physical devices other than what can be extracted by parsing the Xorg logfile. Add new property "Device Node" to the driver to export the open device file. Server 1.11 and later standardises on this property name. The client is responsible for detecting if the device is on the same host and converting the data into a more useful format (e.g. sysfs path). Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Handle touchscreens without BTN_TOUCHPeter Korsgaard2011-05-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some touchscreens (like the Lumio crystaltouch in single touch mode) send BTN_LEFT rather than BTN_TOUCH: Input driver version is 1.0.1 Input device ID: bus 0x3 vendor 0x202e product 0x5 version 0x111 Input device name: "LUMIO Inc LUMIO CrystalTouch ver 1.1C" Supported events: Event type 0 (Sync) Event type 1 (Key) Event code 272 (LeftBtn) Event code 273 (RightBtn) Event code 274 (MiddleBtn) Event type 2 (Relative) Event code 9 (Misc) Event type 3 (Absolute) Event code 0 (X) Value 650 Min 0 Max 4095 Event code 1 (Y) Value 3221 Min 0 Max 4095 Event type 4 (Misc) Event code 4 (ScanCode) Testing ... (interrupt to exit) Event: time 1305882024.934011, type 4 (Misc), code 4 (ScanCode), value 90001 Event: time 1305882024.934017, type 1 (Key), code 272 (LeftBtn), value 1 Event: time 1305882024.934029, type 3 (Absolute), code 0 (X), value 270 Event: time 1305882024.934034, type 3 (Absolute), code 1 (Y), value 1513 Event: time 1305882024.934039, type 2 (Relative), code 9 (Misc), value 1 This causes evdev to handle these device as a mouse rather than a touchscreen, which naturally doesn't work very well. We already internally translate BTN_TOUCH as BTN_LEFT, so accept this kind of devices as touchscreens by checking for devices with BTN_LEFT, absolute X/Y and NO relative X/Y axes. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Add a property to toggle function key modePeter Hutterer2011-05-27
| | | | | | | | | | | | | | | | | | | | | On some keyboards, the multimedia function keys are overlaid with the F keys. This property enables clients to switch the primary mode of these F keys between function keys and multimedia keys. Some keyboards provide an Fn key to toggle between the modes. This is hardware-specific and may or may not work on any given keyboard device. The current imlementation is only hooked up to apple keyboards. The kernel provides a tweak to enable/disable. /sys/module/hid_apple/parameters/fnmode 0 .. keyboard sends Fx keys, Fn disabled 1 .. keyboard sends multimedia keys, Fn toggles to function keys 2 .. keyboard sends function keys, Fn toggles to multimedia keys If fnmode is on 0, we force it to 2. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Michel Dänzer <michel@daenzer.net>
* Export product/vendor ID through a property.Peter Hutterer2011-05-27
| | | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org>
* Move invert variable to the block it is used in.Peter Hutterer2011-05-20
| | | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org>
* Copy out of proximity values into current values selectivelyChase Douglas2011-04-18
| | | | | | | | | | Otherwise, an event that causes us to go into proximity with some new valuator values will retain some old valuator values from when last in proximity. This change ensures that all values posted while out of proximity are accounted for. Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Ensure all known valuator values are stored when out of proximityChase Douglas2011-04-05
| | | | | | | | | | The current code overwrites *all* the stored axis values with whatever came in from evdev. Evdev is a stateful protocol, so it only sends us updates to the axis values that have changed. We need to only update the values that have changed. Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Ensure events are posted when entering into proximityChase Douglas2011-04-05
| | | | | | | | | | Fixes LP: #736829 (https://bugs.launchpad.net/bugs/573006) Re-fixes old X.Org Bug 29645 <http://bugs.freedesktop.org/show_bug.cgi?id=29645> Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* rename valuator init functionsSimon Thum2011-03-23
| | | | | | | | Since the mode of valuators (no longer?) bears a relation to the device class actually initialized, this naming was quite misleading. Signed-off-by: Simon Thum <simon.thum@gmx.de> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Remove constness of device filename to avoid warning when freed.Rami Ylimäki2011-03-09
| | | | | | | | | A warning from free() can be avoided by casting the constness away from its argument pointer or by not declaring the pointer as const in the first place. Signed-off-by: Rami Ylimäki <rami.ylimaki@vincit.fi> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Release leaked device identifier on input device disconnect.Rami Ylimäki2011-03-09
| | | | | | Signed-off-by: Rami Ylimäki <rami.ylimaki@vincit.fi> Reviewed-by: Erkki Seppälä <erkki.seppala@vincit.fi> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Release leaked XKB options on input device disconnect.Rami Ylimäki2011-03-09
| | | | | | | | | | Currently the XKB options duplicated in EvdevAddKeyClass are never released. For example, connecting and disconnecting a bluetooth keyboard repeatedly causes a steadily growing memory leak. Signed-off-by: Rami Ylimäki <rami.ylimaki@vincit.fi> Reviewed-by: Erkki Seppälä <erkki.seppala@vincit.fi> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Use Absolute/Relative as argument to xf86Post*Peter Hutterer2011-02-11
| | | | | | | | xf86Post* takes an int for the is_absolute parameter. Since the XI protocol spec requires Relative to be 0 and Absolute to be 1, use those instead to make the code easier to read. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Add third button emulation.Peter Hutterer2011-02-08
| | | | | | | | | | | | New properties: "Evdev Third Button Emulation" → switch on/off "Evdev Third Button Emulation Timeout" → timeout until event is delivered "Evdev Third Button Emulation Button" → phys button to be emulated "Evdev Third Button Emulation Threshold" → move threshold before emulation is cancelled Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Tested-by: Benjamin Tissoires <tissoire@cena.fr>
* Static atoms don't need to be initialized to 0.Peter Hutterer2011-01-31
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Replace xf86Msg() with xf86IDrvMsg().Peter Hutterer2011-01-31
| | | | | | | | | The latter provides a standardised message format in the form of driver name: device name: message making it easier to grep for driver messages in the log. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Add support for masked valuatorsChase Douglas2011-01-25
| | | | | | | | With the X server now supporting masked valuators for XI2, enable support in X evdev. Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Switch to "goto" logic for error handling when adding classesChase Douglas2011-01-24
| | | | | | | This will be necessary for the addition of multitouch functionality. Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Remove support for X input ABI < 12.2Chase Douglas2011-01-24
| | | | | Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* evdev 2.6.0xf86-input-evdev-2.6.0Peter Hutterer2011-01-11
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Print out error messages when failing to init devicesChase Douglas2011-01-06
| | | | | Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* evdev 2.5.99.903xf86-input-evdev-2.5.99.903Peter Hutterer2011-01-05
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Don't update first_val and num_val if we don't have data (#32480)Peter Hutterer2011-01-04
| | | | | | | | | | | | | | | For touchpads, rel_queued may be on (due to abs to rel conversion) but the delta for x/y is 0/0 on the first touch. Hence, we don't have any valuators to post. The current results in a num_vals of -15 and a subsequent segfault when the data is posted to the server. Start with a last valuator of -1, so that we know if we have at least one to post. X.Org Bug 32480 <http://bugs.freedesktop.org/show_bug.cgi?id=32480> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
* Add use_proximity bit for BTN_TOOL handling.Peter Hutterer2010-12-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Touchpads send garbage data between BTN_TOOL_FINGER and BTN_TOUCH. This leads to cursor movement towards invalid positions (bottom left corner, usually). Add a new flag "use_proximity" as a delimiter for BTN_TOUCH handling. If unset, the actual proximity bits are ignored, no proximity events are sent and BTN_TOUCH is used for the tool handling. Example event stream for synaptics: Event: time 1292893041.002731, -------------- Report Sync ------------ Event: time 1292893041.015807, type 1 (Key), code 330 (Touch), value 0 Event: time 1292893041.015812, type 3 (Absolute), code 0 (X), value 4283 Event: time 1292893041.015813, type 3 (Absolute), code 1 (Y), value 4860 Event: time 1292893041.015815, type 3 (Absolute), code 24 (Pressure), value 23 Event: time 1292893041.015817, type 3 (Absolute), code 28 (Tool Width), value 5 Event: time 1292893041.027537, -------------- Report Sync ------------ Event: time 1292893041.038854, type 3 (Absolute), code 0 (X), value 1 Event: time 1292893041.038857, type 3 (Absolute), code 1 (Y), value 5855 Event: time 1292893041.038859, type 3 (Absolute), code 24 (Pressure), value 1 Event: time 1292893041.038861, type 3 (Absolute), code 28 (Tool Width), value 5 Event: time 1292893041.038864, -------------- Report Sync ------------ Event: time 1292893041.062432, type 3 (Absolute), code 24 (Pressure), value 0 Event: time 1292893041.062435, type 3 (Absolute), code 28 (Tool Width), value 0 Event: time 1292893041.062437, type 1 (Key), code 325 (ToolFinger), value 0 Event: time 1292893041.062438, -------------- Report Sync ------------ Reported-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
* Revert "Don't count BTN_TOUCH as tool. (#29428)"Peter Hutterer2010-12-22
| | | | | | | | | | | | Synaptics devices send garbage between BTN_TOUCH and BTN_TOOL_FINGER. By switching to use this as proximity data now, the pointer is reset to the garbage data position (usually around 1/5855). This reverts commit 899218e18120918138f6d7420465763422d5b3b7. Reported-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
* Rename proximity to in_proximity.Peter Hutterer2010-12-22
| | | | | | | | No functional change, just making it a bit more obvious to read. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Dan Nicholson <dbn.lists@gmail.com> Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
* Fix grammar typo in comment.Peter Hutterer2010-12-21
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* evdev: rename EvdevCacheCompare() to EvdevCache()Peter Korsgaard2010-12-13
| | | | | | | | | | | Since 59056e656c64 (Remove the reopen timer logic) from last year, EvdevCacheCompare() is only used for caching ioctl values and not for comparing, so remove the unused compare logic and rename the function to EvdevCache(). Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk> Reviewed-by: Benjamin Tissoires <benjamin.tissoires@enac.fr> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* evdev 2.5.99.902xf86-input-evdev-2.5.99.902Peter Hutterer2010-12-08
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Return error codes from EvdevOpenDevice()Peter Hutterer2010-12-07
| | | | | | | | | | | The server's behaviour is to stop adding new devices when a BadAlloc occurs on any device (on the assumption that new devices won't magically have more memory). Change EvdevOpenDevice() to return an error code of BadValue when it fails (and thus to the server) to prevent other devices being ignored because of one misconfigured one. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org>
* evdev 2.5.99.901xf86-input-evdev-2.5.99.901Peter Hutterer2010-11-19
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Reshuffle to avoid the need for XI86_CONFIGURED.Peter Hutterer2010-10-28
| | | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Benjamin Tissoires <tissoire@cena.fr>
* Input API 12 requires a valuator mode for each axis.Peter Hutterer2010-10-27
| | | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Benjamin Tissoires <tissoire@cena.fr>
* Extend button mapping to full rangesNikolai Kondrashov2010-10-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extend button code to number mapping to cover full BTN_MOUSE and BTN_MISC ranges, including undefined codes. This extends mapping introduced with 0367e387 to the following: 1 BTN_LEFT BTN_0 BTN_TOUCH 2 BTN_MIDDLE BTN_1 BTN_STYLUS 3 BTN_RIGHT BTN_2 BTN_STYLUS2 8 BTN_SIDE BTN_3 9 BTN_EXTRA BTN_4 10 BTN_FORWARD BTN_5 11 BTN_BACK BTN_6 12 BTN_TASK BTN_7 13 0x118 BTN_8 14 0x119 BTN_9 15 0x11A 0x10A 16 0x11B 0x10B 17 0x11C 0x10C 18 0x11D 0x10D 19 0x11E 0x10E 20 0x11F 0x10F This should fix https://bugs.freedesktop.org/show_bug.cgi?id=30336 Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>