diff options
| -rw-r--r-- | engines/sci/graphics/animate.cpp | 9 | ||||
| -rw-r--r-- | engines/sci/graphics/ports.cpp | 8 | 
2 files changed, 8 insertions, 9 deletions
| diff --git a/engines/sci/graphics/animate.cpp b/engines/sci/graphics/animate.cpp index d8dd43afb1..e02b27c788 100644 --- a/engines/sci/graphics/animate.cpp +++ b/engines/sci/graphics/animate.cpp @@ -352,14 +352,7 @@ void GfxAnimate::update() {  				it->signal &= ~(kSignalViewUpdated | kSignalNoUpdate);  		} else if (it->signal & kSignalStopUpdate) {  			it->signal &= ~kSignalStopUpdate; -			if (g_sci->getGameId() == GID_HOYLE3 && g_sci->isDemo()) { -				// WORKAROUND: The demo of Hoyle 3 doesn't seem to set this -				// flag in this case. Not setting this fixes a large number -				// of incorrect animate entries being drawn on top of dialog -				// boxes (bug #3036763) -			} else { -				it->signal |= kSignalNoUpdate; -			} +			it->signal |= kSignalNoUpdate;  		}  	} diff --git a/engines/sci/graphics/ports.cpp b/engines/sci/graphics/ports.cpp index 9aa539a29a..6d5268625c 100644 --- a/engines/sci/graphics/ports.cpp +++ b/engines/sci/graphics/ports.cpp @@ -304,7 +304,13 @@ Window *GfxPorts::addWindow(const Common::Rect &dims, const Common::Rect *restor  	}  	_windowsById[id] = pwnd; -	if (style & SCI_WINDOWMGR_STYLE_TOPMOST) + + +	// Hoyle3-demo's NewWindow always adds windows to the back of the list. +	// TODO: Determine if other interpreters do the same. +	bool _forceToBack = (g_sci->getGameId() == GID_HOYLE3 && g_sci->isDemo()); + +	if (!_forceToBack && (style & SCI_WINDOWMGR_STYLE_TOPMOST))  		_windowList.push_front(pwnd);  	else  		_windowList.push_back(pwnd); | 
