summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* evdev 2.2.6xf86-input-evdev-2.2.6evdev-2.2-branchPeter Hutterer2009-10-191-1/+1
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Finalize the middle button emulation when a read error occurs (#23048)Peter Hutterer2009-10-191-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> (cherry picked from commit f2dc0681febd297d95dae7c9e3ae19b771af8420)
* evdev 2.2.5xf86-input-evdev-2.2.5Peter Hutterer2009-08-211-1/+1
|
* Only take the driver-internal button mapping to count buttons (#23405)Peter Hutterer2009-08-201-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> (cherry picked from commit 415b6ffa958e3103eeb52af4ccd881497169eed4)
* evdev 2.2.4xf86-input-evdev-2.2.4Peter Hutterer2009-08-061-1/+1
|
* evdev.c: Fix/improve discrimination of rel/abs axesMichael Witten2009-08-061-20/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The relevant comment from evdev.c: We don't allow relative and absolute axes on the same device. The reason is that some devices (MS Optical Desktop 2000) register both rel and abs axes for x/y. The abs axes register min/max; this min/max then also applies to the relative device (the mouse) and caps it at 0..255 for both axes. So, unless you have a small screen, you won't be enjoying it much; consequently, absolute axes are generally ignored. However, currenly only a device with absolute axes can be registered as a touch{pad,screen}. Thus, given such a device, absolute axes are used and relative axes are ignored. The code for initializing abs/rel axes has been abstracted out into 3 functions, so that initialization in EvdevInit(device) is as easy as: if (pEvdev->flags & (EVDEV_TOUCHPAD | EVDEV_TOUCHSCREEN)) EvdevInitTouchDevice(device, pEvdev); else if (pEvdev->flags & EVDEV_RELATIVE_EVENTS) EvdevInitRelClass(device, pEvdev); else if (pEvdev->flags & EVDEV_ABSOLUTE_EVENTS) EvdevInitAbsClass(device, pEvdev); Signed-off-by: Michael Witten <mfwitten@gmail.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit f352598e45be86f9e24d9dba88c657f03f3b168e)
* evdev 2.2.3xf86-input-evdev-2.2.3Peter Hutterer2009-07-301-1/+1
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Evdev doesn't require inputproto.Peter Hutterer2009-07-301-3/+0
| | | | | | | | | | | None of the inputproto headers seem to be included anywhere. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit 6f4634111a83808bc52e7e53733cf2d3bab0cccd) Conflicts: configure.ac
* If a device fails to initialize relative axes, init the abs. axes instead.Peter Hutterer2009-07-301-6/+14
| | | | | | | | | Some devices have relative axes that don't count (scroll wheels). In this case, don't claim we've initialized relative axes, continue with the absolute axes instead. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit b07ab6ea97b779b26e7ae8326528c262cc9907a1)
* Don't register middle mouse button emulation handlers for keyboards.Peter Hutterer2009-07-301-0/+6
| | | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit 2994825665790dc8e35b2944e0d411f3cc9f76fd)
* Coverity Prevent: NO_EFFECT in EvdevWheelEmuSetProperty:Oliver McFadden2009-07-301-9/+0
| | | | | | | | Event unsigned_compare: Comparing unsigned less than zero is never true. "pEvdev->emulateWheel.timeout < 0UL" 342 if (pEvdev->emulateWheel.timeout < 0) Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit 9bfd9e8a3683f14860149ae9f842e88828cc0960)
* evdev: Fix spelling of property in man page to match source code. #22571Asbjørn Sannes2009-07-301-1/+1
| | | | | | Signed-off-by: Asbj�rn Sannes <ace@sannes.org> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit db8b1ca5cffbc48f7d9c5c166489c714ac92ea86)
* evdev: Prevent driver from processing motion events that it has not ↵Derek Upham2009-07-301-2/+14
| | | | | | | | | | | | | | | configured. #21832 The current implementation initializes itself to support relative motion events, or absolute motion events, or neither. But the event-handling code attempts to process all events, no matter what the initialization was. This patch reproduces the flag tests found during init, to skip events that the driver doesn't support. Signed-off-by: Derek Upham <sand@blarg.net> Signed-off-by: Julien Cristau <jcristau@debian.org> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit 0a3657d2ee62f4086e9687218cb33835ba61a0b3)
* Deal with BTN_3 to BTN_9 buttons.Peter Hutterer2009-07-301-0/+11
| | | | | | | | | | | | | | These buttons were previously mapped to 0, i.e. inactive. This patch slightly improves things in that the buttons are now mapped to 8+. Devices that have both BTN_3 and BTN_SIDE (or a similar pair in that sequence) have both mapped to the same button number though. Devices that have BTN_LEFT, BTN_0, BTN_3 and BTN_SIDE have the last three mapped to 8 (and their followers have double-mappings too). We'll fix that once we actually see devices affected by this. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit dc2191285e799be891787e1f64d10c1cba271240)
* Only initialize the number of buttons we actually have.Peter Hutterer2009-07-301-3/+1
| | | | | | | | | This takes into account driver-configured button mappings, i.e. if device with one button has this button mapped to 25 through the ButtonMapping option, the X server will think the device has result 25 buttons. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit 255b9f6bbf374a315750019c6fadc5f82fb7d41d)
* Ensure enough buttons are advertised to pass the button mapping.Peter Hutterer2009-07-301-1/+7
| | | | | | | | | | | | | | | | | Some buttons are mapped to higher button numbers. For example, BTN_0 is posted as button 8 if BTN_LEFT is present. On top of that, the driver-specific button mapping may map the button to something else again. We need to take these mappings into account when counting the number of buttons on the device. Example: A device with BTN_LEFT and BTN_0 and a mapping from 1 -> 7 and 8 -> 2. BTN_LEFT is mapped to 1. 1 is mapped to 7. num_buttons is 7. BTN_0 is mapped to 8. 8 is mapped to 2. num_buttons remains 7. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit b358f1eb3a4ef8fdee099114d6c70d6ea06eba95)
* Up the number of button labels atoms to EVDEV_MAXBUTTONS.Peter Hutterer2009-07-301-2/+2
| | | | | | | | | | | | | Button labels would smash memory if the device had less than 4 buttons and did not advertise a wheel event. In this case the hard-coded wheel button labels would write past the atoms[] boundary. Potential memory smash if a device had a BTN_LEFT and BTN_0, since the latter would map to 8, regardless of the the number of actual buttons (same with BTN_MIDDLE and BTN_1 or BTN_RIGHT and BTN_2). Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit 33cc112ca1af377a85cfeb05dfb72f07d3850a95)
* Only label axes and buttons if the device has axes or buttons.Peter Hutterer2009-07-301-2/+2
| | | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit 3c43d880f13725a04fcd7c0c8d5978a36208e373)
* evdev 2.2.2xf86-input-evdev-2.2.2Peter Hutterer2009-04-301-1/+1
|
* Print read errors as X_NONE to avoid mallocs in the server.Peter Hutterer2009-04-301-4/+8
| | | | | | | | | 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)
* Pre-allocate the reopen timer so we don't allocate during sigio handling.Peter Hutterer2009-04-301-3/+8
| | | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit ddc126637404cb3d9356b7698779dcd8849f8718)
* Trigger read error handling if len is <= 0.Peter Hutterer2009-04-061-1/+1
| | | | | | | | 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)
* evdev 2.2.1xf86-input-evdev-2.2.1Peter Hutterer2009-03-241-1/+1
|
* Fix jumpy touchpads by updating old_vals only when reported by the device.Peter Hutterer2009-03-231-5/+19
| | | | | | | | | | | 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)
* If we have a touchpad, print so, don't claim we're configuring a tablet.Peter Hutterer2009-03-231-1/+4
| | | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit b11439a1763b5f210460b492dd4f47e973f90a3a)
* make sure to clear all axis_map entriesJeremy Jay2009-03-231-0/+5
| | | | | | | | 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)
* Assume touchscreen/touchpad if we have _either_ ABS_PRESSURE or BTN_TOUCHPeter Hutterer2009-03-231-3/+3
| | | | | | | | 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)
* Set "rel" when converting absolute touchpad coordinates to relative (#20661)Jeremy Jay2009-03-231-0/+1
| | | | | | | | | | 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)
* Restore repeat-filtering for server 1.5 and earlier.Peter Hutterer2009-03-231-2/+11
| | | | | | | | | | 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)
* evdev 2.2.0xf86-input-evdev-2.2.0Peter Hutterer2009-03-091-1/+1
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Define MAX_VALUATORS if it's missing to allow for builds against 1.5.Peter Hutterer2009-03-091-0/+5
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Check button label before fetching the Atom from the server. (#20524)Peter Hutterer2009-03-091-0/+3
| | | | | | | | | | 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
* Fix duplicate wheel button up mapping.Peter Hutterer2009-03-061-1/+1
| | | | | | | Reported by Simon Thum. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Simon Thum <simon.thum@gmx.de>
* evdev 2.1.99.1xf86-input-evdev-2.1.99.1Peter Hutterer2009-03-021-1/+1
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Add support for button labelling.Peter Hutterer2009-03-021-2/+123
| | | | | | Buttons 4/5 and 6/7 are hardcoded for wheel buttons. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Rename prop_label to prop_axis_label.Peter Hutterer2009-03-021-5/+5
|
* Don't double-assign the UKNOWN axis label.Peter Hutterer2009-02-261-1/+1
| | | | | | All labels default to unknown anyway. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* If scrollwheels are found, bump the button number by 4 (or up to 7).Peter Hutterer2009-02-261-0/+5
| | | | | | | | | | 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>
* Ignore REL_WHEEL, REL_HWHEEL and REL_DIAL during axis initialisation.Peter Hutterer2009-02-261-0/+13
| | | | | | We don't post the events for them anyway, so lets ignore them completely. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Pass on all relative events, not just x/y.Peter Hutterer2009-02-261-21/+40
| | | | | | | | | 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>
* Reduce the number of read calls in ReadInput.Adam Jackson2009-02-261-14/+22
| | | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
* Split ReadInput into ReadInput and ProcessEvent.Peter Hutterer2009-02-261-168/+177
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Move relative motion and other magic up to EV_SYN processing.Adam Jackson2009-02-261-70/+69
| | | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
* Open with O_NONBLOCK, and simplify EvdevReadInput to match.Adam Jackson2009-02-231-3/+6
| | | | | | | | | 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.
* Revert "Remove useless include directive."Peter Hutterer2009-02-191-0/+1
| | | | | | | | Necessary for builds against 1.6, but let's at least get rid of XKB defines. This reverts commit aa5dfa1d6ae374479d39f1394b85660e6b6bb881. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Label axes conditional on actual support.Peter Hutterer2009-02-181-0/+11
| | | | | | Server 1.6 has device properties, but not axis labels. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Accommodate for holes in the ABS label defines.Peter Hutterer2009-02-181-27/+36
| | | | | | | | 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>
* Add support for arbitrary relative axis labels.Peter Hutterer2009-02-171-5/+39
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Remove superfluous (and duplicate) call to xf86MotionHistoryAllocate.Peter Hutterer2009-02-171-4/+0
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Add generic axis support for relative axes.Peter Hutterer2009-02-171-7/+24
| | | | | | 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>