summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2017-07-11 09:49:35 +0900
committerMaxime Coste <mawww@kakoune.org>2017-07-11 09:51:56 +0900
commit42e5d95cd80e7964e6b681deea633029d7ee4c1c (patch)
tree58fe0d60751673b98b27e7af1ee5f8ce3702bf72 /src
parentebc1e054fcb6175d43332e3b392923fb09664d63 (diff)
Preserve order of definition of mappings when listing them
Fixes #1479 Closes #1494
Diffstat (limited to 'src')
-rw-r--r--src/keymap_manager.cc6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/keymap_manager.cc b/src/keymap_manager.cc
index 4f332b20..15096933 100644
--- a/src/keymap_manager.cc
+++ b/src/keymap_manager.cc
@@ -16,7 +16,7 @@ void KeymapManager::map_key(Key key, KeymapMode mode,
void KeymapManager::unmap_key(Key key, KeymapMode mode)
{
- m_mapping.unordered_remove(KeyAndMode{key, mode});
+ m_mapping.remove(KeyAndMode{key, mode});
}
@@ -43,11 +43,9 @@ KeymapManager::KeyList KeymapManager::get_mapped_keys(KeymapMode mode) const
res = m_parent->get_mapped_keys(mode);
for (auto& map : m_mapping)
{
- if (map.key.second == mode)
+ if (map.key.second == mode and not contains(res, map.key.first))
res.emplace_back(map.key.first);
}
- std::sort(res.begin(), res.end());
- res.erase(std::unique(res.begin(), res.end()), res.end());
return res;
}