diff options
author | tomsmeding <tom.smeding@gmail.com> | 2017-01-14 21:41:42 +0100 |
---|---|---|
committer | tomsmeding <tom.smeding@gmail.com> | 2017-01-14 21:41:42 +0100 |
commit | 2559a5d6d3df07f5d673f376f4a153edc7a16e5f (patch) | |
tree | 86835b8fe8e81b0d09a7be96fc5497c43dcdc086 | |
parent | 0beb9b90c15ef56bffca6a2d55ca6ccffca30264 (diff) |
Cycle tabs with alt-(shift-)tab
-rw-r--r-- | config.cpp | 2 | ||||
-rw-r--r-- | manager.cpp | 12 |
2 files changed, 14 insertions, 0 deletions
@@ -14,6 +14,8 @@ KeyInputMachine global_keyinput({ {{KEY_CTRL+'S'},{"save_file"}}, {{KEY_CTRL+'O'},{"open_prompt"}}, {{KEY_CTRL+'W'},{"close_tab"}}, + {{KEY_ALT+'\t'},{"cycle_tabs"}}, + {{KEY_ALT+KEY_SHIFTTAB},{"cycle_tabs_back"}}, {{KEY_ESC},{"cancel"}}, diff --git a/manager.cpp b/manager.cpp index fdc7641..0bdd0a4 100644 --- a/manager.cpp +++ b/manager.cpp @@ -50,6 +50,18 @@ void Manager::receive(const Command &cmd){ buffers.erase(buffers.begin()+activeIdx); if(activeIdx>0)activeIdx--; if(buffers.size()==0)buffers.push_back(new Buffer(this)); + } else if(cmd[0]=="cycle_tabs"){ + if(activeIdx==-1){ + receive({"error","No buffers open!"}); + return; + } + activeIdx=(activeIdx+1)%buffers.size(); + } else if(cmd[0]=="cycle_tabs_back"){ + if(activeIdx==-1){ + receive({"error","No buffers open!"}); + return; + } + activeIdx=(activeIdx+buffers.size()-1)%buffers.size(); } else if(cmd[0]=="error"||cmd[0]=="info"){ if(!have_screen)return; bool isError=cmd[0]=="error"; |