diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2018-09-18 09:27:48 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2018-09-26 13:12:46 +1000 |
commit | 4bf471f5141ec94b97e0d6a284352b8c1fe97c70 (patch) | |
tree | 710c5c4b30150cd93d81e6943251bf5ab52120a3 | |
parent | 6e1f6d41823ac768fceb5ef62a4f957bf90596ed (diff) | |
download | libinput-4bf471f5141ec94b97e0d6a284352b8c1fe97c70.tar.gz |
evdev: add a quirk for the Kensington Orbit
Pretends to have a middle button where there is none.
Fixes #142
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | meson.build | 1 | ||||
-rw-r--r-- | quirks/30-vendor-kensington.quirks | 6 | ||||
-rw-r--r-- | src/evdev.c | 8 | ||||
-rw-r--r-- | src/quirks.c | 1 | ||||
-rw-r--r-- | src/quirks.h | 1 |
5 files changed, 15 insertions, 2 deletions
diff --git a/meson.build b/meson.build index cc4acdc9..471f701b 100644 --- a/meson.build +++ b/meson.build @@ -255,6 +255,7 @@ quirks_data = [ 'quirks/30-vendor-elantech.quirks', 'quirks/30-vendor-huion.quirks', 'quirks/30-vendor-ibm.quirks', + 'quirks/30-vendor-kensington.quirks', 'quirks/30-vendor-logitech.quirks', 'quirks/30-vendor-microsoft.quirks', 'quirks/30-vendor-razer.quirks', diff --git a/quirks/30-vendor-kensington.quirks b/quirks/30-vendor-kensington.quirks new file mode 100644 index 00000000..02eb40f7 --- /dev/null +++ b/quirks/30-vendor-kensington.quirks @@ -0,0 +1,6 @@ +[Kensington Orbit Scroll Wheel] +MatchBus=usb +MatchVendor=0x047d +MatchProduct=0x2048 +ModelKensingtonOrbit=1 +ModelTrackball=1 diff --git a/src/evdev.c b/src/evdev.c index ec275203..4afdbce7 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -1955,8 +1955,12 @@ evdev_pre_configure_model_quirks(struct evdev_device *device) if (evdev_device_has_model_quirk(device, QUIRK_MODEL_HP_ZBOOK_STUDIO_G3)) libevdev_set_abs_maximum(device->evdev, ABS_MT_SLOT, 1); - /* Logitech Marble Mouse claims to have a middle button */ - if (evdev_device_has_model_quirk(device, QUIRK_MODEL_LOGITECH_MARBLE_MOUSE)) + /* Logitech Marble Mouse claims to have a middle button, same for + * the Kensington Orbit */ + if (evdev_device_has_model_quirk(device, + QUIRK_MODEL_LOGITECH_MARBLE_MOUSE) || + evdev_device_has_model_quirk(device, + QUIRK_MODEL_KENSINGTON_ORBIT)) libevdev_disable_event_code(device->evdev, EV_KEY, BTN_MIDDLE); /* Aiptek tablets have tilt but don't send events */ diff --git a/src/quirks.c b/src/quirks.c index 722f22a4..22c86d02 100644 --- a/src/quirks.c +++ b/src/quirks.c @@ -240,6 +240,7 @@ quirk_get_name(enum quirk q) case QUIRK_MODEL_HP_PAVILION_DM4_TOUCHPAD: return "ModelHPPavilionDM4Touchpad"; case QUIRK_MODEL_HP_STREAM11_TOUCHPAD: return "ModelHPStream11Touchpad"; case QUIRK_MODEL_HP_ZBOOK_STUDIO_G3: return "ModelHPZBookStudioG3"; + case QUIRK_MODEL_KENSINGTON_ORBIT: return "ModelKensingtonOrbit"; case QUIRK_MODEL_LENOVO_CARBON_X1_6TH: return "ModelLenovoCarbonX16th"; case QUIRK_MODEL_LENOVO_SCROLLPOINT: return "ModelLenovoScrollPoint"; case QUIRK_MODEL_LENOVO_T450_TOUCHPAD: return "ModelLenovoT450Touchpad"; diff --git a/src/quirks.h b/src/quirks.h index 7029d540..bd08a19b 100644 --- a/src/quirks.h +++ b/src/quirks.h @@ -67,6 +67,7 @@ enum quirk { QUIRK_MODEL_HP_PAVILION_DM4_TOUCHPAD, QUIRK_MODEL_HP_STREAM11_TOUCHPAD, QUIRK_MODEL_HP_ZBOOK_STUDIO_G3, + QUIRK_MODEL_KENSINGTON_ORBIT, QUIRK_MODEL_LENOVO_CARBON_X1_6TH, QUIRK_MODEL_LENOVO_SCROLLPOINT, QUIRK_MODEL_LENOVO_T450_TOUCHPAD, |