diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-04-21 17:06:43 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-04-21 17:06:43 +0200 |
| commit | 064e40d25f1265a2d6f00f37c402e5f9e08954aa (patch) | |
| tree | f44186686f565906f3c6a22b94ab4d7573f1267b /src/managers | |
| parent | 07080498fd050a6a6660eb68c36d12eb3f87a003 (diff) | |
Added unbind keyword
Diffstat (limited to 'src/managers')
| -rw-r--r-- | src/managers/KeybindManager.cpp | 14 | ||||
| -rw-r--r-- | src/managers/KeybindManager.hpp | 3 |
2 files changed, 13 insertions, 4 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index 6d3417fc..06fdf5f4 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -18,7 +18,15 @@ CKeybindManager::CKeybindManager() { } void CKeybindManager::addKeybind(SKeybind kb) { - m_dKeybinds.push_back(kb); + m_lKeybinds.push_back(kb); +} + +void CKeybindManager::removeKeybind(uint32_t mod, const std::string& key) { + for (auto it = m_lKeybinds.begin(); it != m_lKeybinds.end(); ++it) { + if (it->modmask == mod && it->key == key) { + it = m_lKeybinds.erase(it); + } + } } uint32_t CKeybindManager::stringToModMask(std::string mods) { @@ -54,7 +62,7 @@ bool CKeybindManager::handleKeybinds(const uint32_t& modmask, const xkb_keysym_t return false; } - for (auto& k : m_dKeybinds) { + for (auto& k : m_lKeybinds) { if (modmask != k.modmask) continue; @@ -126,7 +134,7 @@ void CKeybindManager::killActive(std::string args) { } void CKeybindManager::clearKeybinds() { - m_dKeybinds.clear(); + m_lKeybinds.clear(); } void CKeybindManager::toggleActiveFloating(std::string args) { diff --git a/src/managers/KeybindManager.hpp b/src/managers/KeybindManager.hpp index e262081e..2561c8ad 100644 --- a/src/managers/KeybindManager.hpp +++ b/src/managers/KeybindManager.hpp @@ -19,13 +19,14 @@ public: bool handleKeybinds(const uint32_t&, const xkb_keysym_t&); void addKeybind(SKeybind); + void removeKeybind(uint32_t, const std::string&); uint32_t stringToModMask(std::string); void clearKeybinds(); std::unordered_map<std::string, std::function<void(std::string)>> m_mDispatchers; private: - std::deque<SKeybind> m_dKeybinds; + std::list<SKeybind> m_lKeybinds; bool handleInternalKeybinds(xkb_keysym_t); |
