summaryrefslogtreecommitdiff
path: root/manager.cpp
diff options
context:
space:
mode:
authortomsmeding <tom.smeding@gmail.com>2017-01-11 10:26:57 +0100
committertomsmeding <tom.smeding@gmail.com>2017-01-11 10:26:57 +0100
commit7ee15dee3eb9b8d0fc49206b9fd9a56e84bd0a1a (patch)
tree471956f76f34a2ed98720efe312c9ac0e6ae86ac /manager.cpp
parent6d6f45c1e266ffb3206498301a7a6a1b1b22ec3c (diff)
Multi-key keybindings
Diffstat (limited to 'manager.cpp')
-rw-r--r--manager.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/manager.cpp b/manager.cpp
index 7f9fa89..951d84b 100644
--- a/manager.cpp
+++ b/manager.cpp
@@ -137,11 +137,14 @@ int Manager::io(){
int key=tgetkey();
- auto it=global_keybindings.find(key);
- if(it!=global_keybindings.end()){
- receive(it->second);
+ Either<bool,Command> ret=global_keyinput.input(key);
+ if(ret.isLeft()){
+ if(!ret.fromLeft()){
+ bel();
+ receive({"error","Unbound key sequence"});
+ }
} else {
- receive({"error","Unbound key: "+to_string(key)});
+ receive(ret.fromRight());
}
if(should_quit)break;
}