Hi,

On 06/11/2014 02:11 AM, Peter Hutterer wrote:
> A button event consumed by the softbutton or clickpad code does not feed into
> the tap state machine, leaving it in its current state. The touch generating
> that event however may have triggered state changes.
> 
> For some tap/click combinations this gives us either double press/release
> events or an inconsistent order of events. Those issues include:
> * a really short physical click causes a click + tap-click
> * a really short physical click on the right software button causes a right
>   click + left tap-click
> * tap + click causes double button left press events
> 
> To avoid these, notify the tap code that a button event has occured and
> process that accordingly. Depending on the state this may either continue to
> the DEAD state or release the current tap button and then go to the DEAD
> state.
> 
> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>

Looks good:

Reviewed-by: Hans de Goede <hdego...@redhat.com>

Regards,

Hans

> ---
>  src/evdev-mt-touchpad.c | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c
> index 8b502b7..0294eb2 100644
> --- a/src/evdev-mt-touchpad.c
> +++ b/src/evdev-mt-touchpad.c
> @@ -545,13 +545,12 @@ tp_post_events(struct tp_dispatch *tp, uint64_t time)
>  {
>       struct tp_touch *t = tp_current_touch(tp);
>       double dx, dy;
> +     int consumed = 0;
>  
> -     if (tp_post_button_events(tp, time) != 0) {
> -             tp_stop_scroll_events(tp, time);
> -             return;
> -     }
> +     consumed |= tp_tap_handle_state(tp, time);
> +     consumed |= tp_post_button_events(tp, time);
>  
> -     if (tp_tap_handle_state(tp, time) != 0) {
> +     if (consumed) {
>               tp_stop_scroll_events(tp, time);
>               return;
>       }
> 
_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to