mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-02-03 20:30:27 +01:00
touchpad: check the pointer touch for history size
The current touch may not be the pointer touch, so it's pointless checking the history size on that touch. Instead, search for the pointer touch first, check if it's dirty and then check the history size. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
9de131f082
commit
8665e3678a
1 changed files with 15 additions and 15 deletions
|
|
@ -524,23 +524,23 @@ tp_post_events(struct tp_dispatch *tp, uint64_t time)
|
|||
if (tp_post_scroll_events(tp, time) != 0)
|
||||
return;
|
||||
|
||||
if (t->history.count >= TOUCHPAD_MIN_SAMPLES) {
|
||||
if (!t->is_pointer) {
|
||||
tp_for_each_touch(tp, t) {
|
||||
if (t->is_pointer)
|
||||
break;
|
||||
}
|
||||
if (!t->is_pointer) {
|
||||
tp_for_each_touch(tp, t) {
|
||||
if (t->is_pointer)
|
||||
break;
|
||||
}
|
||||
|
||||
if (!t->is_pointer)
|
||||
return;
|
||||
|
||||
tp_get_delta(t, &dx, &dy);
|
||||
tp_filter_motion(tp, &dx, &dy, time);
|
||||
|
||||
if (dx != 0.0 || dy != 0.0)
|
||||
pointer_notify_motion(&tp->device->base, time, dx, dy);
|
||||
}
|
||||
|
||||
if (!t->is_pointer ||
|
||||
!t->dirty ||
|
||||
t->history.count < TOUCHPAD_MIN_SAMPLES)
|
||||
return;
|
||||
|
||||
tp_get_delta(t, &dx, &dy);
|
||||
tp_filter_motion(tp, &dx, &dy, time);
|
||||
|
||||
if (dx != 0.0 || dy != 0.0)
|
||||
pointer_notify_motion(&tp->device->base, time, dx, dy);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue