diff options
-rw-r--r-- | gui/ThemeClassic.cpp | 8 | ||||
-rw-r--r-- | gui/theme.h | 1 |
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; |