aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/avalanche/dialogs.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/engines/avalanche/dialogs.cpp b/engines/avalanche/dialogs.cpp
index fd2e47b34d..0c90d12293 100644
--- a/engines/avalanche/dialogs.cpp
+++ b/engines/avalanche/dialogs.cpp
@@ -128,15 +128,18 @@ void Dialogs::scrollModeNormal() {
_vm->_graphics->showScroll();
Common::Event event;
- while (!_vm->shouldQuit()) {
+ bool escape = false;
+ while (!_vm->shouldQuit() && !escape) {
_vm->_graphics->refreshScreen();
-
- _vm->getEvent(event);
- if ((event.type == Common::EVENT_LBUTTONUP) ||
- ((event.type == Common::EVENT_KEYDOWN) && ((event.kbd.keycode == Common::KEYCODE_ESCAPE) ||
- (event.kbd.keycode == Common::KEYCODE_RETURN) || (event.kbd.keycode == Common::KEYCODE_HASH) ||
- (event.kbd.keycode == Common::KEYCODE_PLUS))))
- break;
+ while (_vm->getEvent(event)) {
+ if ((event.type == Common::EVENT_LBUTTONUP) ||
+ ((event.type == Common::EVENT_KEYDOWN) && ((event.kbd.keycode == Common::KEYCODE_ESCAPE) ||
+ (event.kbd.keycode == Common::KEYCODE_RETURN) || (event.kbd.keycode == Common::KEYCODE_HASH) ||
+ (event.kbd.keycode == Common::KEYCODE_PLUS)))) {
+ escape = true;
+ break;
+ }
+ }
}
_vm->_graphics->restoreScreen();