aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gui/ThemeClassic.cpp8
-rw-r--r--gui/theme.h1
2 files changed, 5 insertions, 4 deletions
diff --git a/gui/ThemeClassic.cpp b/gui/ThemeClassic.cpp
index 7b02b3242b..175bfe04db 100644
--- a/gui/ThemeClassic.cpp
+++ b/gui/ThemeClassic.cpp
@@ -112,6 +112,7 @@ void ThemeClassic::closeDialog() {
delete _dialog;
_dialog = 0;
}
+ _forceRedraw = true;
#endif
}
@@ -124,8 +125,7 @@ void ThemeClassic::clearAll() {
}
void ThemeClassic::drawAll() {
- if (!_initOk)
- return;
+ _forceRedraw = false;
}
void ThemeClassic::resetDrawArea() {
@@ -140,7 +140,7 @@ void ThemeClassic::drawDialogBackground(const Common::Rect &r, uint16 hints, kSt
restoreBackground(r);
- if ((hints & THEME_HINT_SAVE_BACKGROUND) && !(hints & THEME_HINT_FIRST_DRAW)) {
+ if ((hints & THEME_HINT_SAVE_BACKGROUND) && !(hints & THEME_HINT_FIRST_DRAW) && !_forceRedraw) {
addDirtyRect(r);
return;
}
@@ -178,7 +178,7 @@ void ThemeClassic::drawWidgetBackground(const Common::Rect &r, uint16 hints, kWi
restoreBackground(r);
- if ((hints & THEME_HINT_SAVE_BACKGROUND) && !(hints & THEME_HINT_FIRST_DRAW)) {
+ if ((hints & THEME_HINT_SAVE_BACKGROUND) && !(hints & THEME_HINT_FIRST_DRAW) && !_forceRedraw) {
addDirtyRect(r);
return;
}
diff --git a/gui/theme.h b/gui/theme.h
index 6526aa67e0..f6fd4238bc 100644
--- a/gui/theme.h
+++ b/gui/theme.h
@@ -249,6 +249,7 @@ private:
void blendScreenToDialog();
#endif
+ bool _forceRedraw;
bool _initOk;
const Graphics::Font *_font;