From 81e4fe8d44a3f0bd8c104127d7785badab6f2bc8 Mon Sep 17 00:00:00 2001 From: rathnor <rathnor> Date: Sun, 8 Jun 2003 14:32:28 +0000 Subject: add reconfigure and restart keys --- ChangeLog | 3 +++ src/Keys.cc | 21 ++++++++++++++------- src/Keys.hh | 6 ++++-- src/fluxbox.cc | 9 ++++++++- 4 files changed, 29 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index fa38223..121d16a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,9 @@ (Format: Year/Month/Day) Changes for 0.9.3: *03/06/08: + * Add Reconfigure and Restart Key actions, thanks Jann Fisher (Simon) + Also modify the patch to take argument on Restart action + Keys.hh/cc fluxbox.cc * Fix restart command to accept and use an argument again (Simon) Screen.cc FbCommands.hh/cc * Fix bug that sometimes left window frames after window closed (Simon) diff --git a/src/Keys.cc b/src/Keys.cc index a9879b5..48db064 100644 --- a/src/Keys.cc +++ b/src/Keys.cc @@ -19,7 +19,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -//$Id: Keys.cc,v 1.27 2003/04/26 18:27:56 fluxgen Exp $ +//$Id: Keys.cc,v 1.28 2003/06/08 14:32:28 rathnor Exp $ #include "Keys.hh" @@ -135,6 +135,8 @@ Keys::t_actionstr Keys::m_actionlist[] = { {"ToggleDecor", TOGGLEDECOR}, {"ToggleTab", TOGGLETAB}, {"RootMenu", ROOTMENU}, + {"Reconfigure", RECONFIGURE}, + {"Restart", RESTART}, {"Quit", QUIT}, {0, LASTKEYGRAB} }; @@ -294,12 +296,14 @@ bool Keys::load(const char *filename) { last_key->action = m_actionlist[i].action; switch(last_key->action) { + case Keys::RESTART: case Keys::EXECUTE: last_key->execcommand = const_cast<char *> - (FbTk::StringUtil::strcasestr(linebuffer.c_str(), - getActionStr(Keys::EXECUTE))+ - strlen(getActionStr(Keys::EXECUTE))); + (FbTk::StringUtil::strcasestr( + linebuffer.c_str(), + getActionStr(last_key->action)) + + strlen(getActionStr(last_key->action)) + 1); break; case WORKSPACE: case SENDTOWORKSPACE: @@ -481,7 +485,8 @@ Keys::KeyAction Keys::getAction(XKeyEvent *ke) { next_key = m_keylist[i]; break; //end for-loop } else { - if (m_keylist[i]->action == Keys::EXECUTE) + if (m_keylist[i]->action == Keys::EXECUTE || + m_keylist[i]->action == Keys::RESTART) m_execcmdstring = m_keylist[i]->execcommand; //update execcmdstring if action is grabExecute m_param = m_keylist[i]->param; return m_keylist[i]->action; @@ -496,14 +501,16 @@ Keys::KeyAction Keys::getAction(XKeyEvent *ke) { next_key = temp_key; } else { next_key = 0; - if (temp_key->action == Keys::EXECUTE) + if (temp_key->action == Keys::EXECUTE || + temp_key->action == Keys::RESTART) m_execcmdstring = temp_key->execcommand; //update execcmdstring if action is grabExecute return temp_key->action; } } else { temp_key = next_key; next_key = 0; - if (temp_key->action == Keys::EXECUTE) + if (temp_key->action == Keys::EXECUTE || + temp_key->action == Keys::RESTART) m_execcmdstring = temp_key->execcommand; //update execcmdstring if action is grabExecute return temp_key->action; } diff --git a/src/Keys.hh b/src/Keys.hh index d0eb344..b78f7e7 100644 --- a/src/Keys.hh +++ b/src/Keys.hh @@ -19,7 +19,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Keys.hh,v 1.23 2003/04/20 12:21:35 rathnor Exp $ +// $Id: Keys.hh,v 1.24 2003/06/08 14:32:28 rathnor Exp $ #ifndef KEYS_HH #define KEYS_HH @@ -64,6 +64,8 @@ public: TOGGLEDECOR,// toggle visibility of decor (title, frame, handles) TOGGLETAB, // toggle visibilty of tab ROOTMENU, // pop up rootmenu + RECONFIGURE, // reload configuration + RESTART, // restart fluxbox QUIT, // Die, quit, logout, shutdown LASTKEYGRAB //mark end of keygrabbs }; @@ -108,7 +110,7 @@ public: */ const char *getActionStr(KeyAction action); /** - Get command to execute (key action EXECUTE) + Get command to execute (key action EXECUTE/RESTART) @return string to command */ const std::string &getExecCommand() { return m_execcmdstring; } diff --git a/src/fluxbox.cc b/src/fluxbox.cc index 9f5f1cc..7c834a6 100644 --- a/src/fluxbox.cc +++ b/src/fluxbox.cc @@ -22,7 +22,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: fluxbox.cc,v 1.152 2003/06/08 00:13:41 rathnor Exp $ +// $Id: fluxbox.cc,v 1.153 2003/06/08 14:32:28 rathnor Exp $ #include "fluxbox.hh" @@ -1301,6 +1301,13 @@ void Fluxbox::handleKeyEvent(XKeyEvent &ke) { FbCommands::ExecuteCmd cmd(m_key->getExecCommand(), mousescreen->screenNumber()); cmd.execute(); } break; + case Keys::RECONFIGURE: + reload_rc(); + break; + case Keys::RESTART: { + FbCommands::RestartFluxboxCmd cmd(m_key->getExecCommand()); + cmd.execute(); + } break; case Keys::QUIT: shutdown(); break; -- cgit v0.11.2