[PATCH libinput] debounce: handle a timeout in MAYBE_SPURIOUS state
Peter Hutterer
peter.hutterer at who-t.net
Wed Nov 29 00:42:48 UTC 2017
On Tue, Nov 28, 2017 at 09:13:29PM +0100, Vicente Bergas wrote:
> On Tuesday, November 21, 2017 8:10:19 AM CET, Peter Hutterer wrote:
> > Sequences to trigger:
> > - spurious debouncing is enabled
> > - release a button in IS_DOWN state -> RELEASE_DELAYED
> > - short timeout triggers RELEASE_WAITING
> >
> > If a button press now comes before the long timeout expires, we
> > transition to
> > MAYBE_SPURIOUS where the long timeout may expire. In that case we should
> > transition to pressed state again.
> >
> > Reported-by: Vicente Bergas <vicencb at gmail.com>
> > Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> > ---
> > doc/button-debouncing-state-machine.svg | 369
> > +++++++++++---------------------
> > src/evdev-debounce.c | 4 +-
> > 2 files changed, 121 insertions(+), 252 deletions(-)
> >
> > diff --git a/doc/button-debouncing-state-machine.svg
> > b/doc/button-debouncing-state-machine.svg
> > index 6f106a89..48723a13 100644
> > --- a/doc/button-debouncing-state-machine.svg
> > +++ b/doc/button-debouncing-state-machine.svg
> > ...
> > diff --git a/src/evdev-debounce.c b/src/evdev-debounce.c
> > index 7f96249b..74faf39b 100644
> > --- a/src/evdev-debounce.c
> > +++ b/src/evdev-debounce.c
> > @@ -335,9 +335,6 @@ debounce_maybe_spurious_handle_event(struct
> > fallback_dispatch *fallback, enum de
> > case DEBOUNCE_EVENT_RELEASE:
> > debounce_set_state(fallback, DEBOUNCE_STATE_RELEASE_WAITING);
> > break;
> > - case DEBOUNCE_EVENT_TIMEOUT:
> > - log_debounce_bug(fallback, event);
> > - break;
> > case DEBOUNCE_EVENT_TIMEOUT_SHORT:
> > debounce_cancel_timer(fallback);
> > debounce_set_state(fallback, DEBOUNCE_STATE_IS_DOWN);
> > @@ -345,6 +342,7 @@ debounce_maybe_spurious_handle_event(struct
> > fallback_dispatch *fallback, enum de
> > debounce_notify_button(fallback,
> > LIBINPUT_BUTTON_STATE_PRESSED);
> > break;
> > + case DEBOUNCE_EVENT_TIMEOUT:
> > case DEBOUNCE_EVENT_OTHERBUTTON:
> > debounce_set_state(fallback, DEBOUNCE_STATE_IS_DOWN);
> > debounce_notify_button(fallback,
> Hi Peter,
>
> So far it has been one whole week testing ba9e6012a52b plus your 74faf39b
> patch.
> No issues to report.
> Good work!
excellent, thanks heaps for testing.
Cheers,
Peter
More information about the wayland-devel
mailing list