all repos — fluxbox @ ac215248a00d06bdb1e9dd4b373d415bda4ad4b1

custom fork of the fluxbox windowmanager

load default key bindings on error
simonb simonb
commit

ac215248a00d06bdb1e9dd4b373d415bda4ad4b1

parent

143cb6562bcfffdbf5b495169e40b72a30425839

3 files changed, 42 insertions(+), 10 deletions(-)

jump to
M ChangeLogChangeLog

@@ -1,5 +1,9 @@

(Format: Year/Month/Day) Changes for 1.0.0: +*07/09/30: + * Load menu and workspacemenu mouse bindings if error when loading + initial key bindings. Else can't get to menu to reload config (Simon) + Keys.hh/cc *07/09/20: * Updated ru_RU ( Thanks Slava Semushin ) *07/09/13:
M src/Keys.ccsrc/Keys.cc

@@ -166,22 +166,32 @@ TODO: error checking

@return true on success else false */ bool Keys::load(const char *filename) { - if (!filename) + // an intentionally empty file will still have one root mapping + bool firstload = m_map.empty(); + + if (!filename) { + if (firstload) + loadDefaults(); return false; + } - //free memory of previous grabs + FbTk::App::instance()->sync(false); + + // open the file + ifstream infile(filename); + if (!infile) { + if (firstload) + loadDefaults(); + + return false; // failed to open file + } + + // free memory of previous grabs deleteTree(); m_map["default:"] = new t_key(0,0,0,0); - FbTk::App::instance()->sync(false); - - //open the file - ifstream infile(filename); - if (!infile) - return false; // faild to open file - - unsigned int current_line = 0;//so we can tell the user where the fault is + unsigned int current_line = 0; //so we can tell the user where the fault is while (!infile.eof()) { string linebuffer;

@@ -202,6 +212,21 @@

m_filename = filename; keyMode("default"); return true; +} + +/** + * Load critical key/mouse bindings for when there are fatal errors reading the keyFile. + */ +void Keys::loadDefaults() { +#ifdef DEBUG + cerr<<"Loading default key bindings"<<endl; +#endif + deleteTree(); + m_map["default:"] = new t_key(0,0,0,0); + addBinding("OnDesktop Mouse1 :HideMenus"); + addBinding("OnDesktop Mouse2 :WorkspaceMenu"); + addBinding("OnDesktop Mouse3 :RootMenu"); + keyMode("default"); } bool Keys::save(const char *filename) const {
M src/Keys.hhsrc/Keys.hh

@@ -97,6 +97,9 @@ void ungrabKeys();

void grabButton(unsigned int button, unsigned int mod); void ungrabButtons(); + // Load default keybindings for when there are errors loading the initial one + void loadDefaults(); + std::string m_filename; class t_key;