summaryrefslogtreecommitdiffstats
path: root/src/gui/platform
diff options
context:
space:
mode:
authorYifan Zhu <fanzhuyifan@gmail.com>2024-03-11 09:08:25 -0700
committerLiang Qi <liang.qi@qt.io>2024-03-19 00:52:29 +0000
commitdaa5f7bd5f3951e459f10666a8001c8a0076e827 (patch)
tree4af5c79b6f534517d8e4aa2aa3bc4477b4b3129f /src/gui/platform
parentc837cd75936cbeeb898dd5808edb9dfaf716a76e (diff)
qxkbcommon: fix isKeypad
This amends a34e81ab8be6445877e040b1afb85deeaa725f86 . The previous range comparison doesn't work since XKB_KEY_KP_9 is 0xffb9 while XKB_KEY_KP_Equal is 0xffbd. Change to an explicit switch. Pick-to: 6.7 6.6 6.5 6.2 5.15 Change-Id: I3a340bac61fb074eef505ef9b06300a6468877f1 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Liang Qi <liang.qi@qt.io>
Diffstat (limited to 'src/gui/platform')
-rw-r--r--src/gui/platform/unix/qxkbcommon_p.h41
1 files changed, 40 insertions, 1 deletions
diff --git a/src/gui/platform/unix/qxkbcommon_p.h b/src/gui/platform/unix/qxkbcommon_p.h
index a2bf10177d..a40d794451 100644
--- a/src/gui/platform/unix/qxkbcommon_p.h
+++ b/src/gui/platform/unix/qxkbcommon_p.h
@@ -65,7 +65,46 @@ public:
return sym >= 0x20 && sym <= 0xff;
}
static bool isKeypad(xkb_keysym_t sym) {
- return sym >= XKB_KEY_KP_Space && sym <= XKB_KEY_KP_9;
+ switch (sym) {
+ case XKB_KEY_KP_Space:
+ case XKB_KEY_KP_Tab:
+ case XKB_KEY_KP_Enter:
+ case XKB_KEY_KP_F1:
+ case XKB_KEY_KP_F2:
+ case XKB_KEY_KP_F3:
+ case XKB_KEY_KP_F4:
+ case XKB_KEY_KP_Home:
+ case XKB_KEY_KP_Left:
+ case XKB_KEY_KP_Up:
+ case XKB_KEY_KP_Right:
+ case XKB_KEY_KP_Down:
+ case XKB_KEY_KP_Prior:
+ case XKB_KEY_KP_Next:
+ case XKB_KEY_KP_End:
+ case XKB_KEY_KP_Begin:
+ case XKB_KEY_KP_Insert:
+ case XKB_KEY_KP_Delete:
+ case XKB_KEY_KP_Equal:
+ case XKB_KEY_KP_Multiply:
+ case XKB_KEY_KP_Add:
+ case XKB_KEY_KP_Separator:
+ case XKB_KEY_KP_Subtract:
+ case XKB_KEY_KP_Decimal:
+ case XKB_KEY_KP_Divide:
+ case XKB_KEY_KP_0:
+ case XKB_KEY_KP_1:
+ case XKB_KEY_KP_2:
+ case XKB_KEY_KP_3:
+ case XKB_KEY_KP_4:
+ case XKB_KEY_KP_5:
+ case XKB_KEY_KP_6:
+ case XKB_KEY_KP_7:
+ case XKB_KEY_KP_8:
+ case XKB_KEY_KP_9:
+ return true;
+ default:
+ return false;
+ }
}
static void setXkbContext(QPlatformInputContext *inputContext, struct xkb_context *context);