mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-01-04 10:50:13 +01:00
touchpad: fine tune size-based thumb detection
In testing on an Apple Magic Trackpad, thumb touches are reliably detected by being quite large in the major dimension, but around half the size in the minor dimension.
This commit is contained in:
parent
66ac659e36
commit
27c42990d8
2 changed files with 8 additions and 7 deletions
|
|
@ -34,7 +34,7 @@ MatchProduct=0x030E
|
|||
AttrSizeHint=130x110
|
||||
AttrTouchSizeRange=20:10
|
||||
AttrPalmSizeThreshold=900
|
||||
AttrThumbSizeThreshold=800
|
||||
AttrThumbSizeThreshold=700
|
||||
|
||||
[Apple Touchpad OneButton]
|
||||
MatchUdevType=touchpad
|
||||
|
|
|
|||
|
|
@ -1133,16 +1133,17 @@ tp_thumb_detect(struct tp_dispatch *tp, struct tp_touch *t, uint64_t time)
|
|||
* a thumb.
|
||||
*/
|
||||
if (tp->thumb.use_pressure &&
|
||||
t->pressure > tp->thumb.pressure_threshold)
|
||||
t->pressure > tp->thumb.pressure_threshold) {
|
||||
t->thumb.state = THUMB_STATE_YES;
|
||||
else if (tp->thumb.use_size &&
|
||||
(t->major > tp->thumb.size_threshold ||
|
||||
t->minor > tp->thumb.size_threshold))
|
||||
} else if (tp->thumb.use_size &&
|
||||
(t->major > tp->thumb.size_threshold) &&
|
||||
(t->minor < (tp->thumb.size_threshold * 0.6))) {
|
||||
t->thumb.state = THUMB_STATE_YES;
|
||||
else if (t->point.y > tp->thumb.lower_thumb_line &&
|
||||
} else if (t->point.y > tp->thumb.lower_thumb_line &&
|
||||
tp->scroll.method != LIBINPUT_CONFIG_SCROLL_EDGE &&
|
||||
t->thumb.first_touch_time + THUMB_MOVE_TIMEOUT < time)
|
||||
t->thumb.first_touch_time + THUMB_MOVE_TIMEOUT < time) {
|
||||
t->thumb.state = THUMB_STATE_YES;
|
||||
}
|
||||
|
||||
/* now what? we marked it as thumb, so:
|
||||
*
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue