#include "libinput-util.h"
#include "litest.h"
+static bool
+has_2fg_scroll(struct litest_device *dev)
+{
+ struct libinput_device *device = dev->libinput_device;
+
+ return !!(libinput_device_config_scroll_get_methods(device) &
+ LIBINPUT_CONFIG_SCROLL_2FG);
+}
+
+static void
+enable_2fg_scroll(struct litest_device *dev)
+{
+ enum libinput_config_status status, expected;
+ struct libinput_device *device = dev->libinput_device;
+
+ status = libinput_device_config_scroll_set_method(device,
+ LIBINPUT_CONFIG_SCROLL_2FG);
+
+ expected = LIBINPUT_CONFIG_STATUS_SUCCESS;
+ litest_assert_int_eq(status, expected);
+}
+
static void
enable_edge_scroll(struct litest_device *dev)
{
struct litest_device *dev = litest_current_device();
struct libinput *li = dev->libinput;
- if (!touchpad_has_palm_detect_size(dev))
+ if (!touchpad_has_palm_detect_size(dev) ||
+ !has_2fg_scroll(dev))
return;
+ enable_2fg_scroll(dev);
+
litest_disable_tap(dev->libinput_device);
litest_drain_events(li);
struct litest_device *dev = litest_current_device();
struct libinput *li = dev->libinput;
- if (!touchpad_has_palm_detect_size(dev))
+ if (!touchpad_has_palm_detect_size(dev) ||
+ !has_2fg_scroll(dev))
return;
+ enable_2fg_scroll(dev);
+
litest_disable_tap(dev->libinput_device);
/* Run for non-clickpads only: make sure the bottom corners trigger
struct litest_device *dev = litest_current_device();
struct libinput *li = dev->libinput;
- if (!touchpad_has_palm_detect_size(dev))
+ if (!touchpad_has_palm_detect_size(dev) ||
+ !has_2fg_scroll(dev))
return;
+ enable_2fg_scroll(dev);
+
litest_disable_tap(dev->libinput_device);
/* Run for non-clickpads only: make sure the bottom corners trigger
struct litest_device *dev = litest_current_device();
struct libinput *li = dev->libinput;
- if (!touchpad_has_palm_detect_size(dev))
+ if (!touchpad_has_palm_detect_size(dev) ||
+ !has_2fg_scroll(dev))
return;
+ enable_2fg_scroll(dev);
+
litest_disable_tap(dev->libinput_device);
litest_drain_events(li);
struct litest_device *dev = litest_current_device();
struct libinput *li = dev->libinput;
- if (!touchpad_has_palm_detect_size(dev))
+ if (!touchpad_has_palm_detect_size(dev) ||
+ !has_2fg_scroll(dev))
return;
+ enable_2fg_scroll(dev);
+
litest_disable_tap(dev->libinput_device);
litest_drain_events(li);