load default key bindings on error
This commit is contained in:
parent
143cb6562b
commit
ac215248a0
3 changed files with 43 additions and 11 deletions
|
@ -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:
|
||||
|
|
41
src/Keys.cc
41
src/Keys.cc
|
@ -166,20 +166,30 @@ void Keys::ungrabButtons() {
|
|||
@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
|
||||
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
|
||||
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);
|
||||
|
||||
unsigned int current_line = 0; //so we can tell the user where the fault is
|
||||
|
||||
|
@ -204,6 +214,21 @@ bool Keys::load(const char *filename) {
|
|||
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 {
|
||||
//!!
|
||||
//!! TODO: fix keybinding saving
|
||||
|
|
|
@ -97,6 +97,9 @@ private:
|
|||
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;
|
||||
|
|
Loading…
Reference in a new issue