diff options
-rw-r--r-- | engines/lab/interface.cpp | 12 |
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; |