diff options
author | athrxx | 2011-05-16 18:05:00 +0200 |
---|---|---|
committer | athrxx | 2011-05-16 18:05:00 +0200 |
commit | 01c527749295c838b2079f9c95fbab7fb18edc56 (patch) | |
tree | a125bc44838f5bf83f309dfd9abe69a91cb1112a /engines/tsage/graphics.cpp | |
parent | 5fd257d3cccdb2800493237665eb1106f44fabab (diff) | |
parent | 88319a727a5adc4888ec17e5ee091e14ce176afd (diff) | |
download | scummvm-rg350-01c527749295c838b2079f9c95fbab7fb18edc56.tar.gz scummvm-rg350-01c527749295c838b2079f9c95fbab7fb18edc56.tar.bz2 scummvm-rg350-01c527749295c838b2079f9c95fbab7fb18edc56.zip |
Merge branch 'master' of https://github.com/scummvm/scummvm
Diffstat (limited to 'engines/tsage/graphics.cpp')
-rw-r--r-- | engines/tsage/graphics.cpp | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/engines/tsage/graphics.cpp b/engines/tsage/graphics.cpp index 5da00e8522..85dfc5d058 100644 --- a/engines/tsage/graphics.cpp +++ b/engines/tsage/graphics.cpp @@ -967,9 +967,10 @@ GfxButton *GfxDialog::execute(GfxButton *defaultButton) { // Event loop GfxButton *selectedButton = NULL; - while (!_vm->getEventManager()->shouldQuit()) { + bool breakFlag = false; + while (!_vm->getEventManager()->shouldQuit() && !breakFlag) { Event event; - while (_globals->_events.getEvent(event)) { + while (_globals->_events.getEvent(event) && !breakFlag) { // Adjust mouse positions to be relative within the dialog event.mousePos.x -= _gfxManager._bounds.left; event.mousePos.y -= _gfxManager._bounds.top; @@ -978,19 +979,23 @@ GfxButton *GfxDialog::execute(GfxButton *defaultButton) { if ((*i)->process(event)) selectedButton = static_cast<GfxButton *>(*i); } - } - if (selectedButton) - break; - else if (!event.handled) { - if ((event.eventType == EVENT_KEYPRESS) && (event.kbd.keycode == Common::KEYCODE_ESCAPE)) { - selectedButton = NULL; - break; - } else if ((event.eventType == EVENT_KEYPRESS) && (event.kbd.keycode == Common::KEYCODE_RETURN)) { - selectedButton = defaultButton; + if (selectedButton) { + breakFlag = true; break; + } else if (!event.handled) { + if ((event.eventType == EVENT_KEYPRESS) && (event.kbd.keycode == Common::KEYCODE_ESCAPE)) { + selectedButton = NULL; + breakFlag = true; + break; + } else if ((event.eventType == EVENT_KEYPRESS) && (event.kbd.keycode == Common::KEYCODE_RETURN)) { + selectedButton = defaultButton; + breakFlag = true; + break; + } } } + g_system->delayMillis(10); g_system->updateScreen(); } |