Hi,

On 12-04-16 20:50, Peter Hutterer wrote:
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.hutte...@who-t.net>

Looks good to me now:

Reviewed-by: Hans de Goede <hdego...@redhat.com>

Regards,

Hans


---
changes to v1:
- replaces previous 2/4 patch

  src/evdev.c | 4 +++-
  src/evdev.h | 1 +
  2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/evdev.c b/src/evdev.c
index 7ffc464..2afec6e 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -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);
diff --git a/src/evdev.h b/src/evdev.h
index 3a7693e..520446d 100644
--- a/src/evdev.h
+++ b/src/evdev.h
@@ -173,6 +173,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;

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to