diff options
author | Willem Jan Palenstijn | 2015-12-24 20:29:58 +0100 |
---|---|---|
committer | Willem Jan Palenstijn | 2015-12-24 20:29:58 +0100 |
commit | f2194d595dd50c9ee58a4543264392ff2208d7f7 (patch) | |
tree | 5260c08f3da99fa5eca7620c95bcd367de6daa31 /engines/lab/interface.cpp | |
parent | da2074146f8189ae1379b2ac51948de447ed0c05 (diff) | |
parent | c191efa62348c3f7950a0272ee816aa49c4dccce (diff) | |
download | scummvm-rg350-f2194d595dd50c9ee58a4543264392ff2208d7f7.tar.gz scummvm-rg350-f2194d595dd50c9ee58a4543264392ff2208d7f7.tar.bz2 scummvm-rg350-f2194d595dd50c9ee58a4543264392ff2208d7f7.zip |
Merge branch 'master' of github.com:scummvm/scummvm
Diffstat (limited to 'engines/lab/interface.cpp')
-rw-r--r-- | engines/lab/interface.cpp | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/engines/lab/interface.cpp b/engines/lab/interface.cpp index 60b3236640..507e0b27d5 100644 --- a/engines/lab/interface.cpp +++ b/engines/lab/interface.cpp @@ -39,7 +39,7 @@ namespace Lab { -Button *EventManager::createButton(uint16 x, uint16 y, uint16 id, uint16 key, Image *image, Image *altImage) { +Button *EventManager::createButton(uint16 x, uint16 y, uint16 id, Common::KeyCode key, Image *image, Image *altImage) { Button *button = new Button(); if (button) { @@ -92,7 +92,7 @@ uint16 EventManager::makeButtonKeyEquiv(uint16 key) { return key; } -Button *EventManager::checkNumButtonHit(ButtonList *buttonList, uint16 key) { +Button *EventManager::checkNumButtonHit(ButtonList *buttonList, Common::KeyCode key) { uint16 gkey = key - '0'; if (!buttonList) @@ -100,9 +100,10 @@ Button *EventManager::checkNumButtonHit(ButtonList *buttonList, uint16 key) { for (ButtonList::iterator buttonItr = buttonList->begin(); buttonItr != buttonList->end(); ++buttonItr) { Button *button = *buttonItr; - if (((gkey - 1 == button->_buttonId) || ((gkey == 0) && (button->_buttonId == 9)) - || ((button->_keyEquiv != 0) && (makeButtonKeyEquiv(key) == button->_keyEquiv))) - && button->_isEnabled) { + if (!button->_isEnabled) + continue; + + if ((gkey - 1 == button->_buttonId) || (gkey == 0 && button->_buttonId == 9) || (button->_keyEquiv != Common::KEYCODE_INVALID && key == button->_keyEquiv)) { button->_altImage->drawImage(button->_x, button->_y); _vm->_system->delayMillis(80); button->_image->drawImage(button->_x, button->_y); @@ -117,8 +118,7 @@ IntuiMessage *EventManager::getMsg() { static IntuiMessage message; updateMouse(); - - Common::KeyCode curKey; + processInput(); if (_lastButtonHit) { updateMouse(); @@ -135,18 +135,22 @@ IntuiMessage *EventManager::getMsg() { message._mouse.x /= 2; _leftClick = _rightClick = false; return &message; - } else if (keyPress(&curKey)) { - message._code = curKey; - message._mouse = _mousePos; - Button *curButton = checkNumButtonHit(_screenButtonList, message._code); + } else if (_keyPressed.keycode != Common::KEYCODE_INVALID) { + 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; + message._mouse = _mousePos; + + _keyPressed.keycode = Common::KEYCODE_INVALID; + return &message; } else return nullptr; |