From 7f1eafea9600d69251853604d84e4a05f5c2888c Mon Sep 17 00:00:00 2001 From: Torbjörn Andersson Date: Sat, 27 May 2006 22:57:00 +0000 Subject: 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 --- gui/newgui.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'gui') 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(); -- cgit v1.2.3