[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