diff options
author | Chris Sherlock <chris.sherlock79@gmail.com> | 2014-02-03 22:53:05 +1100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2014-02-05 14:42:36 +0000 |
commit | 8f542a605baec0b777effbb3e6666eff09a09a28 (patch) | |
tree | 6dc64d3472164659ea772387f45479022390f31a | |
parent | d892e5d4da5b4fe4664c22a6bde21619b62eeae5 (diff) |
fdo#74424 Use Window::GetOutDev() to access ImplDrawFrameDev()
Part of the decoupling of Window from OutputDevice. We now get
the Window's OutputDevice instance and manipulate this. Do not rely
on the inherited function.
Change-Id: Ie1381b06b940f9220ee77606f9882aa7a4ea1381
Reviewed-on: https://gerrit.libreoffice.org/7808
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | vcl/source/window/window2.cxx | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/vcl/source/window/window2.cxx b/vcl/source/window/window2.cxx index ba9976b46c69..e407bcf40acf 100644 --- a/vcl/source/window/window2.cxx +++ b/vcl/source/window/window2.cxx @@ -173,9 +173,11 @@ void Window::ImplSaveOverlapBackground() mpWindowImpl->mpOverlapData->mnSaveBackSize = nSaveBackSize; mpWindowImpl->mpFrameData->mnAllSaveBackSize += nSaveBackSize; Point aDevPt; - mpWindowImpl->mpFrameWindow->ImplGetFrameDev( Point( mnOutOffX, mnOutOffY ), - aDevPt, aOutSize, - *(mpWindowImpl->mpOverlapData->mpSaveBackDev) ); + + OutputDevice *pOutDev = mpWindowImpl->mpFrameWindow->GetOutDev(); + pOutDev->ImplGetFrameDev( Point( mnOutOffX, mnOutOffY ), + aDevPt, aOutSize, + *(mpWindowImpl->mpOverlapData->mpSaveBackDev) ); mpWindowImpl->mpOverlapData->mpNextBackWin = mpWindowImpl->mpFrameData->mpFirstBackWin; mpWindowImpl->mpFrameData->mpFirstBackWin = this; } @@ -203,20 +205,23 @@ sal_Bool Window::ImplRestoreOverlapBackground( Region& rInvRegion ) Point aDevPt; Point aDestPt( mnOutOffX, mnOutOffY ); Size aDevSize = mpWindowImpl->mpOverlapData->mpSaveBackDev->GetOutputSizePixel(); + + OutputDevice *pOutDev = mpWindowImpl->mpFrameWindow->GetOutDev(); + if ( mpWindowImpl->mpOverlapData->mpSaveBackRgn ) { mpWindowImpl->mpOverlapData->mpSaveBackRgn->Intersect( mpWindowImpl->maWinClipRegion ); rInvRegion = mpWindowImpl->maWinClipRegion; rInvRegion.Exclude( *mpWindowImpl->mpOverlapData->mpSaveBackRgn ); - mpWindowImpl->mpFrameWindow->ImplDrawFrameDev( aDestPt, aDevPt, aDevSize, - *(mpWindowImpl->mpOverlapData->mpSaveBackDev), - *mpWindowImpl->mpOverlapData->mpSaveBackRgn ); + pOutDev->ImplDrawFrameDev( aDestPt, aDevPt, aDevSize, + *(mpWindowImpl->mpOverlapData->mpSaveBackDev), + *mpWindowImpl->mpOverlapData->mpSaveBackRgn ); } else { - mpWindowImpl->mpFrameWindow->ImplDrawFrameDev( aDestPt, aDevPt, aDevSize, - *(mpWindowImpl->mpOverlapData->mpSaveBackDev), - mpWindowImpl->maWinClipRegion ); + pOutDev->ImplDrawFrameDev( aDestPt, aDevPt, aDevSize, + *(mpWindowImpl->mpOverlapData->mpSaveBackDev), + mpWindowImpl->maWinClipRegion ); } ImplDeleteOverlapBackground(); } |