diff options
| author | Vaxry <43317083+vaxerski@users.noreply.github.com> | 2026-05-02 19:18:44 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-05-02 19:18:44 +0100 |
| commit | a3fa7b49503d8eadd644d68c5bc452b600a11935 (patch) | |
| tree | 6d660d6dab0c6213ccd2fcf6be303089cd22e383 /src/managers/KeybindManager.hpp | |
| parent | fceb15979e487ed74f73e05caf786a91d45b4075 (diff) | |
keybinds: fix keycode matching on lua (#14254)
Diffstat (limited to 'src/managers/KeybindManager.hpp')
| -rw-r--r-- | src/managers/KeybindManager.hpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/managers/KeybindManager.hpp b/src/managers/KeybindManager.hpp index 87cae14a..8c885580 100644 --- a/src/managers/KeybindManager.hpp +++ b/src/managers/KeybindManager.hpp @@ -25,13 +25,15 @@ struct SSubmap { } }; +using KeybindKey = std::pair<xkb_keysym_t, xkb_keycode_t>; + struct SKeybind { std::string key = ""; - std::vector<xkb_keysym_t> sMkKeys = {}; + std::vector<KeybindKey> sMkKeys = {}; uint32_t keycode = 0; bool catchAll = false; uint32_t modmask = 0; - std::vector<xkb_keysym_t> sMkMods = {}; + std::vector<KeybindKey> sMkMods = {}; std::string handler = ""; std::string arg = ""; bool locked = false; @@ -156,10 +158,10 @@ class CKeybindManager { SDispatchResult handleKeybinds(const uint32_t, const SPressedKeyWithMods&, bool, SP<IKeyboard>, SP<IHID>); - std::set<xkb_keysym_t> m_mkKeys = {}; - std::set<xkb_keysym_t> m_mkMods = {}; + std::set<KeybindKey> m_mkKeys = {}; + std::set<KeybindKey> m_mkMods = {}; eMultiKeyCase mkBindMatches(const SP<SKeybind>); - eMultiKeyCase mkKeysymSetMatches(const std::vector<xkb_keysym_t>, const std::set<xkb_keysym_t>); + eMultiKeyCase mkKeysymSetMatches(const std::vector<KeybindKey>&, const std::set<KeybindKey>&); bool handleInternalKeybinds(xkb_keysym_t); bool handleVT(xkb_keysym_t); |
