[PATCH libinput 2/6] touchpad: Fix sending of scroll stop events

Hans de Goede hdegoede at redhat.com
Sun May 25 23:33:31 PDT 2014


Hi,

On 05/25/2014 02:13 PM, Jonas Ådahl wrote:
> On Fri, May 23, 2014 at 04:06:23PM +0200, Hans de Goede wrote:
>> Setting tp->scroll.direction = 0 before checking tp->scroll.direction
>> to see if we need to send stop scroll events for vert / horz scrolling does
>> not really work well.
>>
>> Also we need to check direction with an axis mask, not the axis number.
>>
>> While at it also add a tp_stop_scroll_events() helper function for this.
>>
>> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
>> ---
>>  src/evdev-mt-touchpad.c | 39 +++++++++++++++++++++++----------------
>>  1 file changed, 23 insertions(+), 16 deletions(-)
>>
>> diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c
>> index 040939b..2455c36 100644
>> --- a/src/evdev-mt-touchpad.c
>> +++ b/src/evdev-mt-touchpad.c
>> @@ -500,6 +500,28 @@ tp_post_twofinger_scroll(struct tp_dispatch *tp, uint64_t time)
>>  	}
>>  }
>>  
>> +static void
>> +tp_stop_scroll_events(struct tp_dispatch *tp, uint64_t time)
>> +{
>> +	if (tp->scroll.state == SCROLL_STATE_NONE)
>> +		return;
>> +
>> +	/* terminate scrolling with a zero scroll event */
>> +	if (tp->scroll.direction & (1 << LIBINPUT_POINTER_AXIS_VERTICAL_SCROLL))
>> +		pointer_notify_axis(&tp->device->base,
>> +				    time,
>> +				    LIBINPUT_POINTER_AXIS_VERTICAL_SCROLL,
>> +				    0);
>> +	if (tp->scroll.direction & (1 << LIBINPUT_POINTER_AXIS_HORIZONTAL_SCROLL))
>> +		pointer_notify_axis(&tp->device->base,
>> +				    time,
>> +				    LIBINPUT_POINTER_AXIS_HORIZONTAL_SCROLL,
>> +				    0);
> 
> I can see that you didn't introduce sending 0-valued axis events in this
> patch, but why do we do so? weston will ignore it anyway, and if it
> wouldn't or other compositor wouldn't, it might confuse clients assuming
> that a scroll event will always have a direction.

Another one where I'm going to let the answer up to Peter I'm afraid.

Regards,

Hans


More information about the wayland-devel mailing list