summaryrefslogtreecommitdiff
path: root/src/keymap_manager.cc
diff options
context:
space:
mode:
authorDelapouite <delapouite@gmail.com>2018-09-23 19:40:38 +0200
committerDelapouite <delapouite@gmail.com>2018-09-23 19:40:38 +0200
commitb60613259cf0ffa868bf8099550b96b9fecff9a8 (patch)
tree81fbe4bfb058686ca7587714e6cc398d8b8241df /src/keymap_manager.cc
parent1631a7d8d9608c0b8d470173bed596a48ad099b9 (diff)
Add a way to unmap all keys of a given mode at once
Diffstat (limited to 'src/keymap_manager.cc')
-rw-r--r--src/keymap_manager.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/keymap_manager.cc b/src/keymap_manager.cc
index 844f150f..582a271d 100644
--- a/src/keymap_manager.cc
+++ b/src/keymap_manager.cc
@@ -21,6 +21,18 @@ void KeymapManager::unmap_key(Key key, KeymapMode mode)
m_mapping.remove(KeyAndMode{key, mode});
}
+void KeymapManager::unmap_keys(KeymapMode mode)
+{
+ auto it = m_mapping.begin();
+ while (it != m_mapping.end())
+ {
+ auto& map = *it;
+ if (map.key.second == mode)
+ unmap_key(map.key.first, map.key.second);
+ else
+ ++it;
+ }
+}
bool KeymapManager::is_mapped(Key key, KeymapMode mode) const
{