diff options
author | Torbjörn Andersson | 2006-05-27 22:57:00 +0000 |
---|---|---|
committer | Torbjörn Andersson | 2006-05-27 22:57:00 +0000 |
commit | 7f1eafea9600d69251853604d84e4a05f5c2888c (patch) | |
tree | 4087144d0a7e23750fc118893e9cc87fb857fe80 | |
parent | 3f3ac33e73321aff2644d867a46048c774cc75ad (diff) | |
download | scummvm-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.cpp | 7 |
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(); |