diff options
author | Rogutes Sparnuotos <rogutes@googlemail.com> | 2009-05-07 20:22:13 +0300 |
---|---|---|
committer | Rogutes Sparnuotos <rogutes@googlemail.com> | 2009-05-07 20:22:13 +0300 |
commit | 73976af0e553b6c4c33822128cd0cfd5e1b43056 (patch) | |
tree | ad7d58ceda4c0787e9fd0f03d2f9abcbfe81aa79 /src/keys.cc | |
parent | 9d983ab339b92acf349517e2e228ad656bb1b0ea (diff) |
NumLock, CapsLock, etc. modifiers should be ignored in parseKey().
Diffstat (limited to 'src/keys.cc')
-rw-r--r-- | src/keys.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/keys.cc b/src/keys.cc index a8b0b7ad..5b69f794 100644 --- a/src/keys.cc +++ b/src/keys.cc @@ -156,15 +156,17 @@ KeysCommand_t Keys::getKeyCmd() { KeysCommand_t ret = KEYS_NOP; KeyBinding_t keyNode; + // We're only interested in some flags + keyNode.modifier = fltk::event_state() & + (fltk::SHIFT | fltk::CTRL | fltk::ALT | fltk::META); - if (fltk::event_state() == fltk::SHIFT && + if (keyNode.modifier == fltk::SHIFT && ispunct(fltk::event_text()[0])) { // Get key code for a shifted character keyNode.key = fltk::event_text()[0]; keyNode.modifier = 0; } else { keyNode.key = fltk::event_key(); - keyNode.modifier = fltk::event_state(); } _MSG("getKeyCmd: key=%d, mod=%d\n", keyNode.key, keyNode.modifier); |