summaryrefslogtreecommitdiff
path: root/src/evdev.c
AgeCommit message (Collapse)Author
2009-04-30Print read errors as X_NONE to avoid mallocs in the server.Peter Hutterer
Messages of type X_NONE are just passed down to the log files, everything else gets the (EE) or (II) prefixed. Since this mallocs, we can't use it in the signal handler. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit 220e2dfb8f6aa08bd5f59e81c6883c057b945721)
2009-04-30Pre-allocate the reopen timer so we don't allocate during sigio handling.Peter Hutterer
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit ddc126637404cb3d9356b7698779dcd8849f8718)
2009-04-06Trigger read error handling if len is <= 0.Peter Hutterer
Red Hat Bug 494245 <https://bugzilla.redhat.com/show_bug.cgi?id=494245> Reported-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit 98ecb5233bb3b899bd696a90d2733c6a345676dd)
2009-03-23Fix jumpy touchpads by updating old_vals only when reported by the device.Peter Hutterer
Remember whether ABS_X or ABS_Y were reported before the SYN event and only update the old_vals[0, 1] if we got data for them. Touchpads that reported pressure data before x/y would otherwise update old_x/y with bogus values, leading to jumps when the first x/y coordinates were actually reported. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit d9809d7edd2be714a15115b990286554e2979fb6)
2009-03-23If we have a touchpad, print so, don't claim we're configuring a tablet.Peter Hutterer
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit b11439a1763b5f210460b492dd4f47e973f90a3a)
2009-03-23make sure to clear all axis_map entriesJeremy Jay
don't use uninitialized axis_map entries, ie axis_map[ABS_PRESSURE] Signed-off-by: Jeremy Jay <dinkumator@gmail.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit 740dc202f735106532dce581deabe2b95c52759f)
2009-03-23Assume touchscreen/touchpad if we have _either_ ABS_PRESSURE or BTN_TOUCHPeter Hutterer
Touchpads have pressure or touch and also BTN_TOOL_FINGER. Touchscreens have either pressure or touch, but no finger. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit 7ac0c4456dc0846f7e09f334a26f9536e20065df)
2009-03-23Set "rel" when converting absolute touchpad coordinates to relative (#20661)Jeremy Jay
We unset "abs" and convert to relative, but never set "rel" so the events don't get posted. This bit got broken in 43dd2a959243877. X.Org Bug 20661 <http://bugs.freedesktop.org/show_bug.cgi?id=20661> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit a3ea979c2b70d166d62422b4ba450ce2910389c3)
2009-03-23Restore repeat-filtering for server 1.5 and earlier.Peter Hutterer
Letting the server deal with key repeats is fine if we have server 1.6. For earlier servers, we need to pass on the repeat events (except for modifier keys). Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Tested-by: Marty Jack <martyj19@comcast.net> (cherry picked from commit a7fb654a68a26ad5f019a902312c6b94dbe9c3ea)
2009-03-09Check button label before fetching the Atom from the server. (#20524)Peter Hutterer
The server doesn't like NULL names, so don't call XIGetKnownProperty for labels that don't exist. X.Org Bug 20524 <http://bugs.freedesktop.org/show_bug.cgi?id=20524> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Tested-by: Peter Henriksson
2009-03-06Fix duplicate wheel button up mapping.Peter Hutterer
Reported by Simon Thum. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Simon Thum <simon.thum@gmx.de>
2009-03-02Add support for button labelling.Peter Hutterer
Buttons 4/5 and 6/7 are hardcoded for wheel buttons. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-03-02Rename prop_label to prop_axis_label.Peter Hutterer
2009-02-26Don't double-assign the UKNOWN axis label.Peter Hutterer
All labels default to unknown anyway. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-02-26If scrollwheels are found, bump the button number by 4 (or up to 7).Peter Hutterer
Scrollwheel data is always posted as buttons, so we need to advertise at least enough buttons to accommodate for 6/7 (horizontal wheel). Note that this may mean that if you have a device that has scroll wheels and axes, but no buttons, it may be interpreted as a mouse. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-02-26Ignore REL_WHEEL, REL_HWHEEL and REL_DIAL during axis initialisation.Peter Hutterer
We don't post the events for them anyway, so lets ignore them completely. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-02-26Pass on all relative events, not just x/y.Peter Hutterer
9620fe776 added generic axes support for relativ values, but values from such axes didn't get passed on to the server. Fix this. Note that wheel events are not posted as motion events. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-02-26Reduce the number of read calls in ReadInput.Adam Jackson
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
2009-02-26Split ReadInput into ReadInput and ProcessEvent.Peter Hutterer
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-02-26Move relative motion and other magic up to EV_SYN processing.Adam Jackson
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
2009-02-23Open with O_NONBLOCK, and simplify EvdevReadInput to match.Adam Jackson
xf86WaitForInput() would call select() with zero timeout to discover if more input was ready. But we know that's always true at least once, since we're only ever called from the sigio handler (if silken is active) or from the main loop (if it's not and we selected readable). With nonblocking IO we can just spin around until we hit EAGAIN, which gets us down to n+1 syscalls per event instead of 2n.
2009-02-18Label axes conditional on actual support.Peter Hutterer
Server 1.6 has device properties, but not axis labels. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-02-18Accommodate for holes in the ABS label defines.Peter Hutterer
abs_labels[] has to be aligned with the defines in linux/input.h, but the latter does not have continuous range. Pad the holes with AXIS_LABEL_PROP_ABS_MISC. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-02-17Add support for arbitrary relative axis labels.Peter Hutterer
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-02-17Remove superfluous (and duplicate) call to xf86MotionHistoryAllocate.Peter Hutterer
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-02-17Add generic axis support for relative axes.Peter Hutterer
Just query the kernel what axes we actually have, rather than hard-coding x/y. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-02-17Add dynamic axis labelling for absolute devices.Peter Hutterer
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-02-16remove duplicate (code > 255) check.Peter Hutterer
2009-02-16Swap axes after scaling, not before.Peter Hutterer
If we swap before scaling, we scale with the wrong coordinate range. Reported by Matt Helsley. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-02-16CacheCompare before probing the device.Peter Hutterer
Saves a few duplicate ioctls. Suggested by Matt Helsley. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-02-16General axis valuator support.Matt Helsley
Instead of x/y and pressure, support any absolute axis that is reported on the device. Note that there are still locations that special-case X and Y. Minor modifications by Peter Hutterer. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-02-16Change cached bitmasks from long to unsigned long.Peter Hutterer
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-02-16Log which EVIOCGABS ioctl failed.Peter Hutterer
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-02-16Remove superfluous motion history allocation.Peter Hutterer
The motion history buffer is allocated during InitValuatorClassDeviceStruct anyway. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-02-16Remove duplicate MB emu finalization.Peter Hutterer
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-02-13Add descriptive messages for device-has-changed errsBryce Harrington
As can be seen in e.g. bugs 19819 & 20025, it can be unclear what exactly caused a given "Device has changed - disabled" error. This patch adds some more specific messages to give a better clue on what exactly was seen to have changed. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-02-02Janitor: make distcheck, .gitignore.Paulo Cesar Pereira de Andrade
Remove non toplevel .gitignore and .cvsignore files. The "make distcheck correction" for $(sdkdir) probably has a better approach using a "*-hook:" target, or possibly making $sdkdir a configure time option that could be set with DISTCHECK_CONFIGURE_FLAGS.
2009-02-03EvdevCacheCompare: ignore changes in current device positionJulien Plissonneau Duquene
Input devices (especially touchscreens) were disabled when switching virtual console back to X because EvdevCacheCompare() thought the device was substituted by another while away from X. Actually only the current position reported by the device changed from what was in the cache. Fixed by ignoring the current position in the comparison. Fixes bug #19819. Signed-off-by: Julien Cristau <jcristau@debian.org> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-01-29Stop hammering XKB defaultsDan Nicholson
With the new InitKeyboardDeviceStruct, we can just pass the RMLVO we want without setting the defaults first. Signed-off-by: Dan Nicholson <dbn.lists@gmail.com> Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2009-01-22Reshuffle property initialization.Peter Hutterer
We don't need axis calibration, etc. on keyboards, so let's do it conditionally on actually having axes. Reported by Simon Thum. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-01-22Deal with XINPUT ABI 5.Peter Hutterer
Some XKB stuff has been removed, so let's deal with it.
2009-01-22Require XKB.Peter Hutterer
Welcome to the future. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-01-22Add automatic axis labeling.Peter Hutterer
Since we don't support anything but REL/ABS x/y and sometimes pressure this is bordering on pointlessness, but once the year of the Linux desktop comes around this will be really handy. Or so. Also, we don't allow changing axis labels, but should eventually rearrange them if swapaxis is on. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-01-22Don't print xkb options twice to the log file.Peter Hutterer
xf86SetStrOption already prints with X_CONFIG anyway, no need to do it again. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-01-20Register the property handler AFTER setting all the properties.Peter Hutterer
Otherwise, we add a new property based on a setting in pEvdev, which triggers the update handler to change the setting in pEvdev based on the property. Truly pointless. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-01-19Test for pressure BEFORE using has_pressure.Peter Hutterer
2009-01-12Fix FOO_MAX off-by-oneMatt Helsley
In linux/input.h each section's (e.g. ABS) FOO_MAX is the maximum FOO value. Recent kernels define FOO_CNT as the maximum number of FOO there will ever be. Hence using FOO_MAX to size the bit vectors representing the capabilities of an evdev device is off by one. Define FOO_CNT values for use with Linux kernels which lack them. Use FOO_CNT whenever we need to know the number of bits needed -- usually to calculate the number of longs needed. When iterating over the values FOO_MAX still seems appropriate however the loop test should include FOO_MAX rather than skip it. Signed-off-by: Matt Helsley <matt.helsley@gmail.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-01-12rename NBITS to NLONGS to reflect its actual meaningMatt Helsley
NBITS really convers the number of bits passed as its argument into a number of longs. This is somewhat atypical of many function-like-macro names. Rename it to NLONGS. Signed-off-by: Matt Helsley <matt.helsley@gmail.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-01-12Add pressure valuatorMatt Helsley
If it's available report pressure as third valuator. (Use xf86PostMotionEventP instead of the varargs wrapper.) Signed-off-by: Matt Helsley <matt.helsley@gmail.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-01-06Fix XkbModel parsing errorYan Li
Signed-off-by: Yan Li <yan.i.li@intel.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>