aboutsummaryrefslogtreecommitdiff
path: root/graphics/macgui/macmenu.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2019-12-16 11:23:06 +0100
committerEugene Sandulenko2019-12-16 11:23:06 +0100
commit8c0590be77979645429e254fb4a763d0932c8722 (patch)
treef6c299c24b758715132e1e29c9ea518b0b8d3756 /graphics/macgui/macmenu.cpp
parentf724e672f8b65e4be74b73711e996e8b1bb78291 (diff)
downloadscummvm-rg350-8c0590be77979645429e254fb4a763d0932c8722.tar.gz
scummvm-rg350-8c0590be77979645429e254fb4a763d0932c8722.tar.bz2
scummvm-rg350-8c0590be77979645429e254fb4a763d0932c8722.zip
GRAPHICS: MACGUI: Initial code for truly modal MacMenu
Diffstat (limited to 'graphics/macgui/macmenu.cpp')
-rw-r--r--graphics/macgui/macmenu.cpp23
1 files changed, 22 insertions, 1 deletions
diff --git a/graphics/macgui/macmenu.cpp b/graphics/macgui/macmenu.cpp
index 54b9c9e91f..4594b6a156 100644
--- a/graphics/macgui/macmenu.cpp
+++ b/graphics/macgui/macmenu.cpp
@@ -954,12 +954,16 @@ bool MacMenu::mouseClick(int x, int y) {
_items[_activeItem]->submenu->highlight = -1;
}
+ if (!_menuActivated)
+ _wm->activateMenu();
+
_menuActivated = true;
_contentIsDirty = true;
_wm->setFullRefresh(true);
- _wm->activateMenu();
+ if (_wm->_mode & kWMModalMenuMode)
+ eventLoop();
return true;
}
@@ -1185,4 +1189,21 @@ void MacMenu::disableAllMenus() {
_contentIsDirty = true;
}
+void MacMenu::eventLoop() {
+ _contentIsDirty = true;
+
+ while (_menuActivated) {
+ Common::Event event;
+
+ while (g_system->getEventManager()->pollEvent(event)) {
+ processEvent(event);
+
+ draw(_wm->_screen);
+ }
+
+ g_system->updateScreen();
+ g_system->delayMillis(10);
+ }
+}
+
} // End of namespace Wage