diff options
author | Filippos Karapetis | 2009-10-05 08:19:43 +0000 |
---|---|---|
committer | Filippos Karapetis | 2009-10-05 08:19:43 +0000 |
commit | 93833ee86a48e53ae2d38fc66a3539b9cf727f2e (patch) | |
tree | 52491b220cf10da1cc799558d8f03159092107e9 /engines/sci | |
parent | 7f053e3a62e8558d98faed1bc477c1a469e7210f (diff) | |
download | scummvm-rg350-93833ee86a48e53ae2d38fc66a3539b9cf727f2e.tar.gz scummvm-rg350-93833ee86a48e53ae2d38fc66a3539b9cf727f2e.tar.bz2 scummvm-rg350-93833ee86a48e53ae2d38fc66a3539b9cf727f2e.zip |
Window shadows are also taken into account when storing their bits. This fixes the issue where window shadows were left on screen when windows were closed
svn-id: r44654
Diffstat (limited to 'engines/sci')
-rw-r--r-- | engines/sci/gui/gui_windowmgr.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/engines/sci/gui/gui_windowmgr.cpp b/engines/sci/gui/gui_windowmgr.cpp index 46ead18fda..0092e878e7 100644 --- a/engines/sci/gui/gui_windowmgr.cpp +++ b/engines/sci/gui/gui_windowmgr.cpp @@ -191,6 +191,12 @@ void SciGuiWindowMgr::DrawWindow(GuiWindow *pWnd) { GuiPort *oldport = _gfx->SetPort(_wmgrPort); _gfx->PenColor(0); if ((wndStyle & kTransparent) == 0) { + // Store the shadow, if it exists + if ((wndStyle & kUser) == 0) { + pWnd->restoreRect.bottom++; + pWnd->restoreRect.right++; + } + pWnd->hSaved1 = _gfx->SaveBits(pWnd->restoreRect, 1); if (pWnd->uSaveFlag & 2) { pWnd->hSaved2 = _gfx->SaveBits(pWnd->restoreRect, 2); @@ -207,6 +213,7 @@ void SciGuiWindowMgr::DrawWindow(GuiWindow *pWnd) { _gfx->FrameRect(r);// shadow r.translate(-1, -1); _gfx->FrameRect(r);// window frame + if (wndStyle & kTitle) { _gfx->FrameRect(r); r.grow(-1); @@ -227,6 +234,7 @@ void SciGuiWindowMgr::DrawWindow(GuiWindow *pWnd) { if ((wndStyle & kTransparent) == 0) _gfx->FillRect(r, 1, pWnd->backClr); + _gfx->ShowBits(pWnd->dims, 1); } _gfx->SetPort(oldport); |