aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRogutes Sparnuotos <rogutes@googlemail.com>2009-05-07 20:22:13 +0300
committerRogutes Sparnuotos <rogutes@googlemail.com>2009-05-07 20:22:13 +0300
commit73976af0e553b6c4c33822128cd0cfd5e1b43056 (patch)
treead7d58ceda4c0787e9fd0f03d2f9abcbfe81aa79 /src
parent9d983ab339b92acf349517e2e228ad656bb1b0ea (diff)
NumLock, CapsLock, etc. modifiers should be ignored in parseKey().
Diffstat (limited to 'src')
-rw-r--r--src/keys.cc6
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);