summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRick Stockton <rickstockton@reno-computerhelp.com>2012-03-03 00:48:47 -0800
committerSamuel Rødal <samuel.rodal@nokia.com>2012-03-03 16:54:28 +0100
commit42a4092c2885c18411ba4ddb19f4ab5b7d8de3b7 (patch)
treeb03649d2ca7ca527dae7de4c50b86e68aad32477
parenteb4f962cfff3061bd30601ba6a4af81587c8decb (diff)
Add '16 mouse buttons' feature to InputDevice::toWaylandButton
Task-number: QTBUG-22759 Change-Id: Id886a61a98e07bfeb4a18ef57905d6b7293ca0c8 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
-rw-r--r--src/compositor/wayland_wrapper/wlinputdevice.cpp28
1 files changed, 20 insertions, 8 deletions
diff --git a/src/compositor/wayland_wrapper/wlinputdevice.cpp b/src/compositor/wayland_wrapper/wlinputdevice.cpp
index 72b735a2f..57d1e3d9a 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);
}
}