[PATCH libinput 02/10] Add an interface to enable/disable tapping

Peter Hutterer peter.hutterer at who-t.net
Wed Jun 4 01:47:16 PDT 2014


On 4/06/2014 18:40 , Hans de Goede wrote:
> Hi,
>
> On 06/03/2014 07:34 AM, Peter Hutterer wrote:
>> Provide an interface to enable/disable tapping, with a default mapping of
>> 1/2/3 fingers mapping to L/R/M button events, respectively.
>>
>> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
>> ---
>>   src/libinput-private.h | 13 +++++++++
>>   src/libinput.c         | 33 +++++++++++++++++++++++
>>   src/libinput.h         | 73 +++++++++++++++++++++++++++++++++++++++++++++++++-
>>   3 files changed, 118 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/libinput-private.h b/src/libinput-private.h
>> index 61cdc79..020167e 100644
>> --- a/src/libinput-private.h
>> +++ b/src/libinput-private.h
>> @@ -69,12 +69,25 @@ struct libinput_seat {
>>   	uint32_t button_count[KEY_CNT];
>>   };
>>
>> +struct libinput_device_config_tap {
>> +	int (*count)(struct libinput_device *device);
>> +	enum libinput_config_status (*enable)(struct libinput_device *device,
>> +					      int enable);
>> +	int (*is_enabled)(struct libinput_device *device);
>> +	void (*reset)(struct libinput_device *device);
>> +};
>> +
>> +struct libinput_device_config {
>> +	struct libinput_device_config_tap *tap;
>> +};
>> +
>>   struct libinput_device {
>>   	struct libinput_seat *seat;
>>   	struct list link;
>>   	void *user_data;
>>   	int terminated;
>>   	int refcount;
>> +	struct libinput_device_config config;
>>   };
>>
>>   typedef void (*libinput_source_dispatch_t)(void *data);
>> diff --git a/src/libinput.c b/src/libinput.c
>> index 6b7e8b8..6a713bb 100644
>> --- a/src/libinput.c
>> +++ b/src/libinput.c
>> @@ -1182,3 +1182,36 @@ libinput_event_touch_get_base_event(struct libinput_event_touch *event)
>>   {
>>   	return &event->base;
>>   }
>> +
>> +LIBINPUT_EXPORT int
>> +libinput_device_config_tap_get_finger_count(struct libinput_device *device)
>> +{
>> +	return device->config.tap ? device->config.tap->count(device) : 0;
>> +}
>> +
>> +LIBINPUT_EXPORT enum libinput_config_status
>> +libinput_device_config_tap_enable(struct libinput_device *device,
>> +				  int enable)
>> +{
>> +	if (enable &&
>> +	    libinput_device_config_tap_get_finger_count(device) == 0)
>> +		return LIBINPUT_CONFIG_STATUS_UNSUPPORTED;
>> +
>> +	return device->config.tap->enable(device, enable);
>> +}
>> +
>> +LIBINPUT_EXPORT int
>> +libinput_device_config_tap_is_enabled(struct libinput_device *device)
>> +{
>> +	if (libinput_device_config_tap_get_finger_count(device) == 0)
>> +		return 0;
>> +
>> +	return device->config.tap->is_enabled(device);
>> +}
>> +
>> +LIBINPUT_EXPORT void
>> +libinput_device_config_tap_reset(struct libinput_device *device)
>> +{
>> +	if (device->config.tap)
>> +		device->config.tap->reset(device);
>> +}
>
> Didn't we agree in an off-list discussion to add a get_default instead,
> so to that ie a cmdline app for querying config info can not only display
> the current value but also the device default value for a config option ?
>
> This get_default would replace the reset, apps can simple implement that
> functionality themselves through the get_default.

huh, yes, now I remember. I knew something was missing. I'll fix this 
series up with this in mind, sorry about that.

Cheers,
   Peter


More information about the wayland-devel mailing list