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:
Peter Hutterer 2014-07-15 16:01:49 +10:00
parent 9de131f082
commit 8665e3678a

View file

@ -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