summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-11-29Don't send pointer events for multitouch touchscreen devicesmultitouch-develChase Douglas1-5/+6
Pointer events will be emulated by the server. Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-11-11Add the required defines to compile against the inputprotoPeter Hutterer1-0/+2
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-11-11Print to the log if we find multitouch axes.Peter Hutterer1-0/+14
No real effect on the code, but it helps to have that line in the log when searching for driver issues. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-11-11Replace 0/1 button values with enumsPeter Hutterer4-13/+21
BUTTON_PRESS is much harder to confuse with a button number than a simple 1. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-11-11Skip event posting for empty slots.Peter Hutterer2-4/+14
ABS_MT_SLOT comes before any other events. The following order of events is common for protocol B devices (and mtdev): ... EV_SYN ABS_MT_SLOT → posting here means we miss on the position information ABS_MT_POSITION_X ABS_MT_POSITION_Y ABS_MT_SLOT ABS_MT_POSITION_X ABS_MT_POSITION_Y EV_SYN Store the stot state as SLOT_EMPTY after posting an event (i.e. EV_SYN and ABS_MT_SLOT) and then don't post until the next slot/syn event. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-11-11Replace open_slot/close_slot with a SlotState enumPeter Hutterer2-8/+12
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-11-11Simplify a condition, only the event type differs herePeter Hutterer1-10/+13
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-11-11When resetting the queue, don't reset the touchMaskPeter Hutterer1-1/+10
Otherwise we segfault after the first SYN event Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-11-11MT axes are counted separately, make sure they're initialized too.Peter Hutterer1-1/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-11-110 is the value for "unknown/unlimited" number of touchesPeter Hutterer1-1/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-11-11Use mtdev API to allocate/free mtdev structsPeter Hutterer1-13/+6
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-11-11Remove duplicate linePeter Hutterer1-3/+2
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-11-11Ensure touchpad events are always processed with MTChase Douglas1-1/+2
Without this change, an MT touchpad in relative mode could end a touch while not resetting the oldMask used to calculate relative values. This fix allows a Magic Trackpad to behave as a relative mode device again. Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-11-11Use MTDev for multitouch devicesChase Douglas4-3/+45
MTDev translates all multitouch devices to the slotted evdev protocol. This provides a clean and uniform interface and reduces message handling inside the input module and X. Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2011-11-11Add experimental XI 2.1 multitouch supportChase Douglas3-16/+237
This multitouch addition only supports slotted MT evdev protocol devices. Support must be enabled at configure time using --enable-multitouch. Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Amendments: XI_TouchMotion -> XI_TouchUpdate, rename mtMask to mt_mask Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-11-11Use a new "Virtual Device" boolean property to mark virtual devicesPeter Hutterer3-1/+122
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>
2011-11-11Move misplaced #endif caused by smooth-scrolling mergePeter Hutterer1-1/+1
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>
2011-11-09Bump to 2.6.99Peter Hutterer1-1/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-11-09Merge branch 'smooth-scrolling'Peter Hutterer2-1/+20
Conflicts: src/evdev.c Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-11-09Support smooth scrolling on REL_WHEEL, REL_HWHEEL and REL_DIALPeter Hutterer2-1/+20
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>
2011-11-04Don't crop long value from EvdevBitIsSet.Peter Hutterer1-1/+1
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>
2011-10-31emuThird: Use xf86SetIntOption, not xf86SetBoolOption for integer valuesJools Wills1-2/+2
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>
2011-10-24type-safe inline functions for bitmask manipulationMax Schwarz1-34/+42
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>
2011-08-15Exit axis labelling if axes are neither rel nor absPeter Hutterer1-1/+2
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>
2011-07-18xf86-input-evdev: Return proper default for unknown values in ↵Terry Lambert1-0/+3
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>
2011-06-15Remove unused misc_label and valPeter Hutterer2-7/+0
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>
2011-06-15Print abs axes ranges on verbosity 6.Peter Hutterer1-0/+2
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org>
2011-06-15Require server 1.10Peter Hutterer2-5/+1
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>
2011-06-15Set prop_product_id undeletableDaniel Kurtz1-1/+1
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>
2011-05-27Export device node as property.Peter Hutterer3-2/+25
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>
2011-05-27Handle touchscreens without BTN_TOUCHPeter Korsgaard1-0/+6
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>
2011-05-27Add a property to toggle function key modePeter Hutterer5-1/+337
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>
2011-05-27Export product/vendor ID through a property.Peter Hutterer2-2/+36
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org>
2011-05-20Move invert variable to the block it is used in.Peter Hutterer1-1/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org>
2011-04-18Copy out of proximity values into current values selectivelyChase Douglas1-7/+8
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>
2011-04-05Ensure all known valuator values are stored when out of proximityChase Douglas1-1/+4
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>
2011-04-05Ensure events are posted when entering into proximityChase Douglas1-0/+1
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>
2011-03-23rename valuator init functionsSimon Thum1-14/+14
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>
2011-03-09Remove constness of device filename to avoid warning when freed.Rami Ylimäki2-3/+3
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>
2011-03-09Release leaked device identifier on input device disconnect.Rami Ylimäki1-0/+3
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>
2011-03-09Release leaked XKB options on input device disconnect.Rami Ylimäki1-1/+13
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>
2011-02-11Use Absolute/Relative as argument to xf86Post*Peter Hutterer2-7/+7
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>
2011-02-08Add third button emulation.Peter Hutterer6-0/+492
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>
2011-01-31Static atoms don't need to be initialized to 0.Peter Hutterer1-5/+5
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-01-31Replace xf86Msg() with xf86IDrvMsg().Peter Hutterer3-128/+115
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>
2011-01-25Add support for masked valuatorsChase Douglas3-87/+111
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>
2011-01-24Switch to "goto" logic for error handling when adding classesChase Douglas1-9/+15
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>
2011-01-24Remove support for X input ABI < 12.2Chase Douglas5-472/+12
Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-01-11evdev 2.6.0Peter Hutterer1-1/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-01-06Print out error messages when failing to init devicesChase Douglas1-4/+16
Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>