aboutsummaryrefslogtreecommitdiff
path: root/engines/wage/menu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/wage/menu.cpp')
-rw-r--r--engines/wage/menu.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/engines/wage/menu.cpp b/engines/wage/menu.cpp
index 198bdf3d40..40dbbbbf50 100644
--- a/engines/wage/menu.cpp
+++ b/engines/wage/menu.cpp
@@ -341,6 +341,11 @@ void Menu::calcMenuBounds(MenuItem *menu) {
bool Menu::draw(Graphics::ManagedSurface *g, bool forceRedraw) {
Common::Rect r(_bbox);
+ if (!_contentIsDirty)
+ return false;
+
+ _contentIsDirty = true;
+
Design::drawFilledRoundRect(&_gui->_screen, r, kDesktopArc, kColorWhite, _gui->_patterns, kPatternSolid);
r.top = 7;
Design::drawFilledRect(&_gui->_screen, r, kColorWhite, _gui->_patterns, kPatternSolid);
@@ -506,6 +511,8 @@ bool Menu::mouseRelease(int x, int y) {
_activeItem = -1;
_activeSubItem = -1;
+ _gui->_wm.setFullRefresh(true);
+
return true;
}
@@ -566,12 +573,16 @@ void Menu::enableCommand(int menunum, int action, bool state) {
for (uint i = 0; i < _items[menunum]->subitems.size(); i++)
if (_items[menunum]->subitems[i]->action == action)
_items[menunum]->subitems[i]->enabled = state;
+
+ _contentIsDirty = true;
}
void Menu::disableAllMenus() {
for (uint i = 1; i < _items.size(); i++) // Leave About menu on
for (uint j = 0; j < _items[i]->subitems.size(); j++)
_items[i]->subitems[j]->enabled = false;
+
+ _contentIsDirty = true;
}
} // End of namespace Wage