Commit graph

2469 commits

Author SHA1 Message Date
Peter Hutterer
bb3d6e000e doc: expand build instructinos
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-03-08 14:36:56 +10:00
Peter Hutterer
957f8ec2f1 touchpad: add elantech-specific pressure values
https://bugs.freedesktop.org/show_bug.cgi?id=99975

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2017-03-08 06:49:38 +10:00
Peter Hutterer
c0dbd6eb38 touchpad: ignore hovering touches for the software button state
If a touch started hovering in the main area, the button state would start
with AREA and never move to the real button state, despite the finger
triggering the pressure thresholds correctly in one of the areas.

This could even happen across touch sequences if a touch went below pressure
in the software button area, it changed to hovering and the button state
changed to NONE. On the next event, the touch is still hovering and the
current position of the touch is taken for the button state machine.

https://bugs.freedesktop.org/show_bug.cgi?id=99976

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2017-03-02 08:34:17 +10:00
Peter Hutterer
07ce6c8954 tools: fix printing of tablet coordinates
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-03-01 09:34:46 +10:00
Peter Hutterer
d6379bc3f3 touchpad: reduce minimum height for horiz edge scrolling to 40mm
Introduced in commit 8e7f99c27a we only allowed horizontal edge scrolling
on devices larger than 50mm to leave enough reactive space on the touchpad.
Looking at a ruler, a 50mm high touchpad is still large enough to leave the
bottom 7mm as an horizontal edge scroll area. Reduce the minimum size to 40mm
instead, that's closer to where it starts to get a bit iffy.

https://bugzilla.redhat.com/show_bug.cgi?id=1422221

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2017-02-28 11:32:08 +10:00
Peter Hutterer
1798cbdcaa tools: fix two comment typos
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-02-27 15:24:09 +10:00
Peter Hutterer
619db3b60e Merge branch 'wip/log-function-rework' 2017-02-27 11:27:41 +10:00
Peter Hutterer
38c675c959 tools: add mode group info to libinput-list-devices
We don't cater for the special case of groups having a different number of
modes, there is no hardware right now that does that.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2017-02-27 09:36:37 +10:00
Peter Hutterer
c787ccf270 Fix a crash when requesting invalid mode group indices
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2017-02-27 09:36:37 +10:00
Peter Hutterer
451c6913e5 tools: add "--quiet" option to only log libinput messages
Supresses any printf statements from the tool itself, i.e. it skips printing
any of the events.

Makes it easier to debug the internal state since it's not intermixed with a
whole lot of messages about the events that are generated. Best combined with
--verbose (yes, hilarious, isn't it...)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Hans de Goede <hdegoede@redhat.com>
2017-02-24 16:11:46 +10:00
Peter Hutterer
faf86d3e37 timer: prefix all messages with "timer:"
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Hans de Goede <hdegoede@redhat.com>
2017-02-24 16:04:44 +10:00
Peter Hutterer
6181adbdcd evdev: standardize log messsages
Prefix device log messages with the device's sysname so it's more obvious
where the messages are coming from. This makes it much easier to grep for a
specific device's messages but also adds some identifier to messages that
were previously without any identifier (e.g. all the state machine debugging)

All info and error messages also automatically prefix the device name, so
those messages are standardised too, e.g

an info message now:
  event4  - SynPS/2 Synaptics TouchPad: is tagged by udev as: Touchpad
a debug message now:
  event4  - using pressure-based touch detection

And since this required changing a lot of the strings in messages anyway,
polish a few minor things too.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Hans de Goede <hdegoede@redhat.com>
2017-02-24 16:04:44 +10:00
Peter Hutterer
2d500deac8 evdev: move the 'device removed' message to the evdev backend
Preparation work for standardizing log messages better

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Hans de Goede <hdegoede@redhat.com>
2017-02-24 15:54:56 +10:00
Peter Hutterer
67a7026b74 configure.ac: libinput 1.7rc1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-02-23 10:49:11 +10:00
Peter Hutterer
fd67204cf2 doc: add a custom css for local overrides
Easier to track if we leave the original files alone. Actual changes to the
doxygen style:

* indent <dd> blocks
* hide the navigation sub-items. Our current style expands the full navigation
  menu but File-list, etc. is mostly useless and just wastes space.
* force some space below the main bar
* change the header sizes around a bit. Primary goal here: making <h1> smaller
  than the title

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-02-23 08:20:20 +10:00
Peter Hutterer
8a79d8a487 doc: allow custom styles to overide the bootstrap style
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-02-23 08:19:37 +10:00
Peter Hutterer
5bb4a6e87f doc: disable the search engine/search box
It was just floating around lonely there and I doubt anyone really used it.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-02-23 08:19:32 +10:00
Peter Hutterer
d248049f8d doc: minor documentation fix
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-02-23 07:04:55 +10:00
Peter Hutterer
dbefce8ffe test: add a has_slider check for the airbrush tool
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-02-22 10:00:17 +10:00
Peter Hutterer
4ce0fe4a2d Merge branch 'wip/logitech-marble-mouse-middleemulation' 2017-02-22 07:56:07 +10:00
Peter Hutterer
765ef9a31d tools: print accel profiles up to 1000 mm/s
The range that matters is 0-200, maybe up to 400 if you account for really
fast movements. But to match other, published, accel curves default to up to
1000 mm/s. It's easy enough in gnuplot to reduce the range.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-02-21 15:05:07 +10:00
Peter Hutterer
a6b550cb78 tools: print the key as -1 for obfuscated keys
Missing from 8c1aa1de where we hid the human-readable parts but the keycode
itself is still enough information to recover the typed bits.
Print it as -1 as that keycode doesn't exist for real keys so it stands out
nicely.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-02-21 11:24:08 +10:00
Peter Hutterer
c5d9ecbdae Add the matching @see tags to the accel config
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-02-21 09:35:23 +10:00
Peter Hutterer
c225c0592c evdev: don't provide button scrolling on absolute pointer devices
This may be a feature for the future but for now be honest and don't claim
that button-based scrolling is available, it's not hooked up in the absolute
code path.

https://bugs.freedesktop.org/show_bug.cgi?id=99865

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2017-02-20 21:43:45 +10:00
Peter Hutterer
6a2870f5ca evdev: add "READY" state to button scrolling
Before, our states were idle, button down and scrolling. This adds a state
where the button is down and the timeout has expired (i.e. we're ready to send
scroll events) but we haven't actually sent any events anymore.

If the button is released in this state, we generate a normal click event.

https://bugs.freedesktop.org/show_bug.cgi?id=99666

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2017-02-20 21:16:34 +10:00
Peter Hutterer
3697b72071 evdev: convert button scrolling into a state machine
No functional changes, preparation work for adding another state.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2017-02-20 13:51:39 +10:00
Peter Hutterer
bcf8c222cb test: add tests for middle button + button scrolling on BTN_LEFT
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2017-02-20 13:51:37 +10:00
Peter Hutterer
1cd901694f evdev: add state debugging to button scrolling
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2017-02-20 13:10:28 +10:00
Peter Hutterer
08d1655ebe evdev: rename define for button scroll timeout
This is merely 'button scrolling' now, only the original implementation was
middle button only. And to avoid confusing with the middle button emulation,
drop "MIDDLE" from the define.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2017-02-20 13:10:20 +10:00
Peter Hutterer
f7f849e576 evdev: add quirk for Logitech Marble Mouse
Device needs BTN_MIDDLE disabled, this way middle button emulation is present
by default.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2017-02-20 12:25:05 +10:00
Peter Hutterer
e43f9da9ec evdev: allow button scrolling on the L/R button with middle emulation active
This worked before, but triggered a negative timer bug. When one of the
physical L/R buttons is pressed with middle button emulation enabled, the
flow is:
1) phys left button down
2) middle button state machine discards events, sets timer
3) timer expires or button is released
4) middle button state machine sends button press with time from 1)
5) emulation code sees button press, sets timer for scroll emulation
6) timer logs bug because (original-button-time + timeout) is less than now()

That log_bug_libinput() warning fails the tests but works otherwise.

Allow this situation explicitly, on some devices we only have left and right
buttons and no scroll wheel, so having middle button emulation *and*
button-scroll working is useful.

https://bugs.freedesktop.org/show_bug.cgi?id=99845

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2017-02-20 12:23:08 +10:00
Peter Hutterer
53e263fce7 test: fix the pointer scroll-defaults test
The button-scroll by default behavior is only true on devices with a middle
button.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2017-02-20 12:17:26 +10:00
Peter Hutterer
72c5821a3b test: skip two tests when middle button is missing
And disable middle button emulation for this test, it would mess with the test
results.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2017-02-20 12:17:22 +10:00
Peter Hutterer
9ab05b0bfd test: fix middle button defaults test
This failed on devices without a middle button, we just didn't have a test
device to trigger this.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2017-02-20 12:17:05 +10:00
Peter Hutterer
42b68397f9 test: check the libinput device for BTN_MIDDLE, not the libevdev device
We don't have the same libevdev context that libinput has so if libinput
disables/enables event codes we don't see that and may get unexpected
behavior in the test.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2017-02-20 12:16:02 +10:00
Peter Hutterer
5515ecafec tools: size without decimals is good enough
Sub-mm precision isn't needed for libinput-list-devices' size field.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-02-20 12:11:26 +10:00
Sakse Dalum
25f9c1381b Added missing button range for pad on CTH-680
This device has BTN_LEFT, BTN_RIGHT, BTN_FORWARD and BTN_BACK, add the
missing range to the pad init function.

https://bugs.freedesktop.org/show_bug.cgi?id=99785

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2017-02-20 10:25:01 +10:00
Peter Hutterer
6b561d4505 test: fix udev rule for waltop tablet test device
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-02-17 15:39:31 +10:00
Peter Hutterer
92196ce555 tools: print errors as red, info as highlighted
makes it easier to filter out debugging messages

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2017-02-15 09:29:39 +10:00
Peter Hutterer
63fcf46951 tools: don't print device options on device removed
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-02-14 09:07:33 +10:00
Peter Hutterer
8c1aa1de00 tools: hide key codes by default
libinput-debug-events prints keycodes as they come in. This makes it dangerous
to be run by users (especially in the background) because it will leak
sensitive information as it is typed. Obfuscate the base set of keycodes
by default, require a --show-keycodes switch to show it.

The few times we actually need the keycodes, we can run the switch in the
debugging tool.

This does not affect keys outside of the main block on the keyboard (F-keys,
multimedia keys).

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2017-02-14 07:53:22 +10:00
Peter Hutterer
b23318492e doc: add a page "what is libinput"
This will eventually feature the architecture diagrams, etc. But for now it's
mostly just a list of what will be and what won't be supported.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-02-13 10:47:11 +10:00
Peter Hutterer
00db4252f3 doc: link to tapping page from the FAQ
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-02-13 10:46:59 +10:00
Peter Hutterer
7920691464 doc: make the tap-to-click default setting a separate section
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-02-13 10:45:47 +10:00
Peter Hutterer
7c3279346d touchpad: drop 'is blacklisted' check for dwt pairing
dwt is needed on internal touchpads only and those external ones that are a
combo device. This also now gives us the same check for palm detect and dwt.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2017-02-13 08:29:20 +10:00
Peter Hutterer
019f185107 touchpad: add a hwdb quirk for (external) touchpad/keyboard combos
Specify the layout of the combo so we know when to initialize palm detection.

This allows us to drop palm detection on external touchpads otherwise,
replacing the wacom-specific check with something more generic..

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2017-02-13 08:28:37 +10:00
Peter Hutterer
be30b28a12 Merge branch 'gcov-tests'
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-02-09 12:27:39 +10:00
Peter Hutterer
02b18d112c test: add tests for tablet tool types
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-02-09 11:54:04 +10:00
Peter Hutterer
2dd9b77c9d test: add helper functions to filter an event
Simplest implementation for what we need right now, it turns off an event on
the evdev device and turns it back on again. This allows us to change bits in
the 'normal' event stream, such as changing the tool type without triggering
proximity events for the BTN_TOOL_PEN that all test devices send by default.

This won't work for absolute devices because we need to re-enable with a
struct input_absinfo. But we don't need that ability for now anyway.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-02-09 11:54:03 +10:00
Peter Hutterer
47fbd8f98f test: add basic test for getting the physical seat name
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-02-09 11:54:03 +10:00