aboutsummaryrefslogtreecommitdiff
path: root/src/Keys.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/Keys.cc')
-rw-r--r--src/Keys.cc33
1 files changed, 29 insertions, 4 deletions
diff --git a/src/Keys.cc b/src/Keys.cc
index 2d26ab8..f3cd092 100644
--- a/src/Keys.cc
+++ b/src/Keys.cc
@@ -307,10 +307,35 @@ bool Keys::addBinding(const string &linebuffer) {
307 context |= ON_WINDOW; 307 context |= ON_WINDOW;
308 else if (strcasecmp("NONE",val[argc].c_str())) { 308 else if (strcasecmp("NONE",val[argc].c_str())) {
309 // check if it's a mouse button 309 // check if it's a mouse button
310 if (!strcasecmp(val[argc].substr(0,5).c_str(), "mouse") && 310 if (strcasecmp("focusin", val[argc].c_str()) == 0) {
311 val[argc].length() > 5) { 311 context = ON_WINDOW;
312 mod = key = 0;
313 type = FocusIn;
314 } else if (strcasecmp("focusout", val[argc].c_str()) == 0) {
315 context = ON_WINDOW;
316 mod = key = 0;
317 type = FocusOut;
318 } else if (strcasecmp("changeworkspace",
319 val[argc].c_str()) == 0) {
320 context = ON_DESKTOP;
321 mod = key = 0;
322 type = FocusIn;
323 } else if (strcasecmp("mouseover", val[argc].c_str()) == 0) {
324 type = EnterNotify;
325 if (!(context & (ON_WINDOW|ON_TOOLBAR)))
326 context |= ON_WINDOW;
327 key = 0;
328 } else if (strcasecmp("mouseout", val[argc].c_str()) == 0) {
329 type = LeaveNotify;
330 if (!(context & (ON_WINDOW|ON_TOOLBAR)))
331 context |= ON_WINDOW;
332 key = 0;
333 } else if (strcasecmp(val[argc].substr(0,5).c_str(),
334 "mouse") == 0 &&
335 val[argc].length() > 5) {
312 type = ButtonPress; 336 type = ButtonPress;
313 key = atoi(val[argc].substr(5,val[argc].length()-5).c_str()); 337 key = atoi(val[argc].substr(5,
338 val[argc].length()-5).c_str());
314 // keycode covers the following three two-byte cases: 339 // keycode covers the following three two-byte cases:
315 // 0x - hex 340 // 0x - hex
316 // +[1-9] - number between +1 and +9 341 // +[1-9] - number between +1 and +9
@@ -331,7 +356,7 @@ bool Keys::addBinding(const string &linebuffer) {
331 type = KeyPress; 356 type = KeyPress;
332 } 357 }
333 358
334 if (key == 0) 359 if (key == 0 && (type == KeyPress || type == ButtonPress))
335 return false; 360 return false;
336 if (!first_new_key) { 361 if (!first_new_key) {
337 first_new_keylist = current_key; 362 first_new_keylist = current_key;