BTN_TOOL_FINGER, DOUBLETAP, etc. are mutually exclusive in the kernel, so we can use ffs here instead of manually counting.
Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> --- src/evdev-mt-touchpad.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c index 42c163b..c80d314 100644 --- a/src/evdev-mt-touchpad.c +++ b/src/evdev-mt-touchpad.c @@ -138,17 +138,8 @@ tp_get_touch(struct tp_dispatch *tp, unsigned int slot) static inline int tp_fake_finger_count(struct tp_dispatch *tp) { - unsigned int fake_touches, nfake_touches; - /* don't count BTN_TOUCH */ - fake_touches = tp->fake_touches >> 1; - nfake_touches = 0; - while (fake_touches) { - nfake_touches++; - fake_touches >>= 1; - } - - return nfake_touches; + return __builtin_ffs(tp->fake_touches >> 1); } static inline bool -- 2.1.0 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel