[PATCH libinput 06/11] touchpad: Add tp_get_average_touches_delta helper function
Hans de Goede
hdegoede at redhat.com
Wed Feb 18 04:26:49 PST 2015
Add a tp_get_average_touches_delta helper function, and rename
tp_get_active_touches_delta to tp_get_combined_touches_delta to better
differentiate the two.
Signed-off-by: Hans de Goede <hdegoede at redhat.com>
---
src/evdev-mt-touchpad.c | 25 +++++++++++++++++--------
1 file changed, 17 insertions(+), 8 deletions(-)
diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c
index a4c3fb9..c6c48d3 100644
--- a/src/evdev-mt-touchpad.c
+++ b/src/evdev-mt-touchpad.c
@@ -513,20 +513,22 @@ tp_palm_detect(struct tp_dispatch *tp, struct tp_touch *t, uint64_t time)
}
static void
-tp_post_twofinger_scroll(struct tp_dispatch *tp, uint64_t time)
+tp_get_average_touches_delta(struct tp_dispatch *tp, double *dx, double *dy)
{
struct tp_touch *t;
int nchanged = 0;
- double dx = 0, dy =0;
double tmpx, tmpy;
+ *dx = 0.0;
+ *dy = 0.0;
+
tp_for_each_touch(tp, t) {
if (tp_touch_active(tp, t) && t->dirty) {
nchanged++;
tp_get_delta(t, &tmpx, &tmpy);
- dx += tmpx;
- dy += tmpy;
+ *dx += tmpx;
+ *dy += tmpy;
}
/* Stop spurious MOTION events at the end of scrolling */
t->is_pointer = false;
@@ -535,9 +537,16 @@ tp_post_twofinger_scroll(struct tp_dispatch *tp, uint64_t time)
if (nchanged == 0)
return;
- dx /= nchanged;
- dy /= nchanged;
+ *dx /= nchanged;
+ *dy /= nchanged;
+}
+
+static void
+tp_post_twofinger_scroll(struct tp_dispatch *tp, uint64_t time)
+{
+ double dx = 0, dy =0;
+ tp_get_average_touches_delta(tp, &dx, &dy);
tp_filter_motion(tp, &dx, &dy, NULL, NULL, time);
evdev_post_scroll(tp->device,
@@ -758,7 +767,7 @@ tp_get_pointer_delta(struct tp_dispatch *tp, double *dx, double *dy)
}
static void
-tp_get_active_touches_delta(struct tp_dispatch *tp, double *dx, double *dy)
+tp_get_combined_touches_delta(struct tp_dispatch *tp, double *dx, double *dy)
{
struct tp_touch *t;
double tdx, tdy;
@@ -784,7 +793,7 @@ tp_post_pointer_motion(struct tp_dispatch *tp, uint64_t time)
/* When a clickpad is clicked, combine motion of all active touches */
if (tp->buttons.is_clickpad && tp->buttons.state)
- tp_get_active_touches_delta(tp, &dx, &dy);
+ tp_get_combined_touches_delta(tp, &dx, &dy);
else
tp_get_pointer_delta(tp, &dx, &dy);
--
2.1.0
More information about the wayland-devel
mailing list