From 8ea3db574ad4fc3e8022d89045b66d4fe2597356 Mon Sep 17 00:00:00 2001 From: Marius Nita Date: Mon, 14 Oct 2002 05:03:15 +0000 Subject: more fixes, better sanity detection and error messages. it shouldn't hog the keyboard in any case now. it won't grab when modifiers or keys are borked. --- util/epist/parser.cc | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'util/epist/parser.cc') diff --git a/util/epist/parser.cc b/util/epist/parser.cc index 00be5d7e..5c953aae 100644 --- a/util/epist/parser.cc +++ b/util/epist/parser.cc @@ -61,6 +61,18 @@ void parser::parse(string rc_file) _kt->initialize(); } +void parser::setKey(string key) +{ + KeySym sym = XStringToKeysym(key.c_str()); + + if (sym == 0) { + std::cerr << "ERROR: Invalid key (" << key << ")! This may cause odd behavior.\n"; + _add = false; + } else { + _key = key; + } +} + void parser::setAction(string act) { struct { @@ -189,14 +201,11 @@ void parser::endChain() void parser::setChainBinding() { - if (_mask != 0 && _key != "") { - if (!_add) { - cout << "Error: Bad modifier detected on chain's root key.\n"; - _add = true; - } + if (_add) _kt->setCurrentNodeProps(Action::noaction, _mask, _key, ""); - reset(); - } + + _add = true; + reset(); } void parser::reset() -- cgit v1.2.3