aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorbjörn Andersson2006-05-27 22:57:00 +0000
committerTorbjörn Andersson2006-05-27 22:57:00 +0000
commit7f1eafea9600d69251853604d84e4a05f5c2888c (patch)
tree4087144d0a7e23750fc118893e9cc87fb857fe80
parent3f3ac33e73321aff2644d867a46048c774cc75ad (diff)
downloadscummvm-rg350-7f1eafea9600d69251853604d84e4a05f5c2888c.tar.gz
scummvm-rg350-7f1eafea9600d69251853604d84e4a05f5c2888c.tar.bz2
scummvm-rg350-7f1eafea9600d69251853604d84e4a05f5c2888c.zip
Don't "tickle" a dialog until after it has had a chance to redraw itself,
otherwise it may be in an inconsistent state since the modern theme uses openDialog() to allocate a surface as large as he dialog itself. This fixes a crash when changing to a bigger scaler when the About dialog is running. svn-id: r22688
-rw-r--r--gui/newgui.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/gui/newgui.cpp b/gui/newgui.cpp
index c7ebf170ed..4ad9ef45e6 100644
--- a/gui/newgui.cpp
+++ b/gui/newgui.cpp
@@ -162,8 +162,6 @@ void NewGui::runLoop() {
}
while (!_dialogStack.empty() && activeDialog == _dialogStack.top()) {
- activeDialog->handleTickle();
-
if (_needRedraw) {
// Restore the overlay to its initial state, then draw all dialogs.
// This is necessary to get the blending right.
@@ -188,6 +186,11 @@ void NewGui::runLoop() {
_needRedraw = false;
}
+ // Don't "tickle" the dialog until the theme has had a chance
+ // to re-allocate buffers in case of a scaler change.
+
+ activeDialog->handleTickle();
+
if (useStandardCurs)
animateCursor();
_theme->drawAll();