Allow both 2FG and EDGE scroll methods
Summary
Allow both LIBINPUT_CONFIG_SCROLL_2FG
and LIBINPUT_CONFIG_SCROLL_EDGE
scroll methods simultaneously. I.e. send scroll event when two fingers are placed on a device OR when the finger moves along the bottom or right edge of a device.
Feature details
This could be implemented by adding new scroll method LIBINPUT_CONFIG_SCROLL_2FG_AND_EDGE
, or by supporting passing the bitwise-or LIBINPUT_CONFIG_SCROLL_2FG | LIBINPUT_CONFIG_SCROLL_EDGE
to libinput_device_config_scroll_set_method()
.
From the user perspective, it can be used like this:
libinput_device_config_scroll_set_method(device, LIBINPUT_CONFIG_SCROLL_2FG_AND_EDGE);
or:
libinput_device_config_scroll_set_method(device, LIBINPUT_CONFIG_SCROLL_2FG | LIBINPUT_CONFIG_SCROLL_EDGE);
Alternatively new function could be added, e.g. libinput_device_config_scroll_set_multiple_methods()
, that could be used like this:
enum libinput_config_scroll_method methods[] {LIBINPUT_CONFIG_SCROLL_2FG, LIBINPUT_CONFIG_SCROLL_EDGE, NULL};
libinput_device_config_scroll_set_multiple_methods(device, methods);
But the last one seems stretched and unnecessarily complicated.
Affected Hardware
Not sure. It involves edge scrolling so probably only touchpads?
Implementation in Other Systems
It works in synaptics driver. I have no idea how it is implemented, but it seems irrelevant.