From 42a4092c2885c18411ba4ddb19f4ab5b7d8de3b7 Mon Sep 17 00:00:00 2001 From: Rick Stockton Date: Sat, 3 Mar 2012 00:48:47 -0800 Subject: [PATCH] Add '16 mouse buttons' feature to InputDevice::toWaylandButton MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Task-number: QTBUG-22759 Change-Id: Id886a61a98e07bfeb4a18ef57905d6b7293ca0c8 Reviewed-by: Samuel Rødal --- src/compositor/wayland_wrapper/wlinputdevice.cpp | 28 +++++++++++++++++------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/compositor/wayland_wrapper/wlinputdevice.cpp b/src/compositor/wayland_wrapper/wlinputdevice.cpp index 72b735a..57d1e3d 100644 --- a/src/compositor/wayland_wrapper/wlinputdevice.cpp +++ b/src/compositor/wayland_wrapper/wlinputdevice.cpp @@ -275,16 +275,28 @@ uint32_t InputDevice::toWaylandButton(Qt::MouseButton button) { #ifndef BTN_LEFT uint32_t BTN_LEFT = 0x110; - uint32_t BTN_RIGHT = 0x111; - uint32_t BTN_MIDDLE = 0x112; #endif + // the range of valid buttons (evdev module) is from 0x110 + // through 0x11f. 0x120 is the first 'Joystick' button. switch (button) { - case Qt::LeftButton: - return BTN_LEFT; - case Qt::RightButton: - return BTN_RIGHT; - default: - return BTN_MIDDLE; + case Qt::LeftButton: return BTN_LEFT; + case Qt::RightButton: return uint32_t(0x111); + case Qt::MiddleButton: return uint32_t(0x112); + case Qt::ExtraButton1: return uint32_t(0x113); // AKA Qt::BackButton, Qt::XButton1 + case Qt::ExtraButton2: return uint32_t(0x114); // AKA Qt::ForwardButton, Qt::XButton2 + case Qt::ExtraButton3: return uint32_t(0x115); + case Qt::ExtraButton4: return uint32_t(0x116); + case Qt::ExtraButton5: return uint32_t(0x117); + case Qt::ExtraButton6: return uint32_t(0x118); + case Qt::ExtraButton7: return uint32_t(0x119); + case Qt::ExtraButton8: return uint32_t(0x11a); + case Qt::ExtraButton9: return uint32_t(0x11b); + case Qt::ExtraButton10: return uint32_t(0x11c); + case Qt::ExtraButton11: return uint32_t(0x11d); + case Qt::ExtraButton12: return uint32_t(0x11e); + case Qt::ExtraButton13: return uint32_t(0x11f); + // default should not occur; but if it does, then return Wayland's highest possible button number. + default: return uint32_t(0x11f); } } -- 2.7.4