From 2559a5d6d3df07f5d673f376f4a153edc7a16e5f Mon Sep 17 00:00:00 2001 From: tomsmeding Date: Sat, 14 Jan 2017 21:41:42 +0100 Subject: Cycle tabs with alt-(shift-)tab --- config.cpp | 2 ++ manager.cpp | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/config.cpp b/config.cpp index efe60e2..0dfe0d2 100644 --- a/config.cpp +++ b/config.cpp @@ -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"; -- cgit v1.2.3-54-g00ecf