From 8029c898084787ca1e9e2d02afeff19de117aaed Mon Sep 17 00:00:00 2001 From: Solomon Peachy Date: Tue, 3 Nov 2020 08:18:21 -0500 Subject: erosq: Fix scrollwheel regression introduced in 125e97b0 Change-Id: Ie1a53d7140ffb09d8e3a19a41617fdc51344a619 --- firmware/target/hosted/button-devinput.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'firmware/target') diff --git a/firmware/target/hosted/button-devinput.c b/firmware/target/hosted/button-devinput.c index 8c469b8308..448be2c5c4 100644 --- a/firmware/target/hosted/button-devinput.c +++ b/firmware/target/hosted/button-devinput.c @@ -109,17 +109,23 @@ int button_read_device(void) /* map linux event code to rockbox button bitmap */ if(press) { - button_bitmap |= button_map(keycode); + int bmap = button_map(keycode); +#if defined(BUTTON_SCROLL_BACK) + /* Keep track of when the last wheel tick happened */ + if (bmap & (BUTTON_SCROLL_BACK|BUTTON_SCROLL_FWD)) + last_tick = current_tick; +#endif + button_bitmap |= bmap; } else { + int bmap = button_map(keycode); #if defined(BUTTON_SCROLL_BACK) /* Wheel gives us press+release back to back; ignore the release */ - int bmap = button_map(keycode) & ~(BUTTON_SCROLL_BACK|BUTTON_SCROLL_FWD); - button_bitmap &= ~bmap; -#else - button_bitmap &= ~button_map(keycode); + bmap &= ~(BUTTON_SCROLL_BACK|BUTTON_SCROLL_FWD); #endif + button_bitmap &= ~bmap; + } } } -- cgit v1.2.3