summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/xcb/qxcbkeyboard.h
diff options
context:
space:
mode:
authorGatis Paeglis <gatis.paeglis@qt.io>2018-02-08 13:01:25 +0100
committerGatis Paeglis <gatis.paeglis@qt.io>2018-02-25 13:18:41 +0000
commit669070c404b9cbeac9ad8050600ec6b90bdcb756 (patch)
tree4ba7f2887d4652a6fb042d1df9b68368d927b205 /src/plugins/platforms/xcb/qxcbkeyboard.h
parent1a341d8333c95708759706aa78fbc7828d837bf2 (diff)
xcb: simplify handling of keymap updates
The old code was somewhat too scattered. Change-Id: Ib0445c66653f757ccac28778f34f4bcb5df49a70 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/plugins/platforms/xcb/qxcbkeyboard.h')
-rw-r--r--src/plugins/platforms/xcb/qxcbkeyboard.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/plugins/platforms/xcb/qxcbkeyboard.h b/src/plugins/platforms/xcb/qxcbkeyboard.h
index eab917e5b4..c131d69267 100644
--- a/src/plugins/platforms/xcb/qxcbkeyboard.h
+++ b/src/plugins/platforms/xcb/qxcbkeyboard.h
@@ -64,9 +64,9 @@ public:
void handleKeyPressEvent(const xcb_key_press_event_t *event);
void handleKeyReleaseEvent(const xcb_key_release_event_t *event);
- void handleMappingNotifyEvent(const void *event);
Qt::KeyboardModifiers translateModifiers(int s) const;
+ void updateKeymap(xcb_mapping_notify_event_t *event);
void updateKeymap();
QList<int> possibleKeys(const QKeyEvent *e) const;
@@ -94,11 +94,11 @@ protected:
int keysymToQtKey(xcb_keysym_t keysym, Qt::KeyboardModifiers modifiers,
struct xkb_state *state, xcb_keycode_t code) const;
- struct xkb_keymap *keymapFromCore();
+ typedef QMap<xcb_keysym_t, int> KeysymModifierMap;
+ struct xkb_keymap *keymapFromCore(const KeysymModifierMap &keysymMods);
// when XKEYBOARD not present on the X server
- void updateModifiers();
- typedef QMap<xcb_keysym_t, int> KeysymModifierMap;
+ void updateModifiers(const KeysymModifierMap &keysymMods);
KeysymModifierMap keysymsToModifiers();
// when XKEYBOARD is present on the X server
void updateVModMapping();
@@ -122,7 +122,7 @@ private:
_mod_masks rmod_masks;
// when XKEYBOARD not present on the X server
- xcb_key_symbols_t *m_key_symbols;
+ xcb_key_symbols_t *m_key_symbols = nullptr;
struct _xkb_mods {
xkb_mod_index_t shift;
xkb_mod_index_t lock;