mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-01-07 07:40:16 +01:00
evdev: split scroll button state check out
Rather than checking the physical key's state, set a flag for the button to be down. This enables us to use non-physical buttons (middle button emulation). Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
parent
d76263a00f
commit
aeb0c21b1c
2 changed files with 4 additions and 1 deletions
|
|
@ -273,7 +273,7 @@ evdev_post_trackpoint_scroll(struct evdev_device *device,
|
|||
uint64_t time)
|
||||
{
|
||||
if (device->scroll.method != LIBINPUT_CONFIG_SCROLL_ON_BUTTON_DOWN ||
|
||||
!hw_is_key_down(device, device->scroll.button))
|
||||
!device->scroll.button_scroll_btn_pressed)
|
||||
return false;
|
||||
|
||||
if (device->scroll.button_scroll_active)
|
||||
|
|
@ -494,6 +494,8 @@ static void
|
|||
evdev_button_scroll_button(struct evdev_device *device,
|
||||
uint64_t time, int is_press)
|
||||
{
|
||||
device->scroll.button_scroll_btn_pressed = is_press;
|
||||
|
||||
if (is_press) {
|
||||
libinput_timer_set(&device->scroll.timer,
|
||||
time + DEFAULT_MIDDLE_BUTTON_SCROLL_TIMEOUT);
|
||||
|
|
|
|||
|
|
@ -172,6 +172,7 @@ struct evdev_device {
|
|||
/* Checks if buttons are down and commits the setting */
|
||||
void (*change_scroll_method)(struct evdev_device *device);
|
||||
bool button_scroll_active;
|
||||
bool button_scroll_btn_pressed;
|
||||
double threshold;
|
||||
double direction_lock_threshold;
|
||||
uint32_t direction;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue