diff options
author | Alexander Volkov <a.volkov@rusbitech.ru> | 2014-12-12 14:37:36 +0300 |
---|---|---|
committer | Alexander Volkov <a.volkov@rusbitech.ru> | 2014-12-18 10:47:56 +0100 |
commit | 8a075c405709eab9c08ed4230d795ca45eabd5a7 (patch) | |
tree | 0d5f0b69bcc530585b9478b990c35d89a8e60a9e /src/plugins/platforms/xcb/qxcbkeyboard.cpp | |
parent | 9290383a1e6fdf13f5f2ffe4fbdafa2445e4db61 (diff) |
xcb: Don't return 0 from QXcbKeyboard::possibleKeys
It's possible to get 0 for baseQtKey in case Caps Lock is used as
a layout switcher. So don't include this value in the result.
Similar fix was in commit d904533acba1267431ca2c5f0d3e85cc59a20a26.
Task-number: QTCREATORBUG-9589
Change-Id: I46fc91f9faf6fd0699f062a72fd2ca3187232f5a
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
Diffstat (limited to 'src/plugins/platforms/xcb/qxcbkeyboard.cpp')
-rw-r--r-- | src/plugins/platforms/xcb/qxcbkeyboard.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/plugins/platforms/xcb/qxcbkeyboard.cpp b/src/plugins/platforms/xcb/qxcbkeyboard.cpp index 260fb46309..5fb745717b 100644 --- a/src/plugins/platforms/xcb/qxcbkeyboard.cpp +++ b/src/plugins/platforms/xcb/qxcbkeyboard.cpp @@ -957,7 +957,8 @@ QList<int> QXcbKeyboard::possibleKeys(const QKeyEvent *event) const QList<int> result; int baseQtKey = keysymToQtKey(sym, modifiers, lookupString(kb_state, keycode)); - result += (baseQtKey + modifiers); // The base key is _always_ valid, of course + if (baseQtKey) + result += (baseQtKey + modifiers); xkb_mod_index_t shiftMod = xkb_keymap_mod_get_index(xkb_keymap, "Shift"); xkb_mod_index_t altMod = xkb_keymap_mod_get_index(xkb_keymap, "Alt"); |