aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/lab/interface.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/engines/lab/interface.cpp b/engines/lab/interface.cpp
index 6f0156234a..4d00d7af20 100644
--- a/engines/lab/interface.cpp
+++ b/engines/lab/interface.cpp
@@ -135,18 +135,20 @@ IntuiMessage *EventManager::getMsg() {
_leftClick = _rightClick = false;
return &message;
} else if (_keyPressed.keycode != Common::KEYCODE_INVALID) {
- message._code = _keyPressed.keycode;
- _keyPressed.keycode = Common::KEYCODE_INVALID;
-
- Button *curButton = checkNumButtonHit(_screenButtonList, message._code);
+ Button *curButton = checkNumButtonHit(_screenButtonList, _keyPressed.keycode);
if (curButton) {
message._msgClass = kMessageButtonUp;
message._code = curButton->_buttonId;
- } else
+ } else {
message._msgClass = kMessageRawKey;
+ message._code = _keyPressed.keycode;
+ }
message._qualifier = _keyPressed.flags;
+
+ _keyPressed.keycode = Common::KEYCODE_INVALID;
+
return &message;
} else
return nullptr;