Kaydet (Commit) 8f542a60 authored tarafından Chris Sherlock's avatar Chris Sherlock Kaydeden (comit) Caolán McNamara

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/7808Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst d892e5d4
...@@ -173,9 +173,11 @@ void Window::ImplSaveOverlapBackground() ...@@ -173,9 +173,11 @@ void Window::ImplSaveOverlapBackground()
mpWindowImpl->mpOverlapData->mnSaveBackSize = nSaveBackSize; mpWindowImpl->mpOverlapData->mnSaveBackSize = nSaveBackSize;
mpWindowImpl->mpFrameData->mnAllSaveBackSize += nSaveBackSize; mpWindowImpl->mpFrameData->mnAllSaveBackSize += nSaveBackSize;
Point aDevPt; Point aDevPt;
mpWindowImpl->mpFrameWindow->ImplGetFrameDev( Point( mnOutOffX, mnOutOffY ),
aDevPt, aOutSize, OutputDevice *pOutDev = mpWindowImpl->mpFrameWindow->GetOutDev();
*(mpWindowImpl->mpOverlapData->mpSaveBackDev) ); pOutDev->ImplGetFrameDev( Point( mnOutOffX, mnOutOffY ),
aDevPt, aOutSize,
*(mpWindowImpl->mpOverlapData->mpSaveBackDev) );
mpWindowImpl->mpOverlapData->mpNextBackWin = mpWindowImpl->mpFrameData->mpFirstBackWin; mpWindowImpl->mpOverlapData->mpNextBackWin = mpWindowImpl->mpFrameData->mpFirstBackWin;
mpWindowImpl->mpFrameData->mpFirstBackWin = this; mpWindowImpl->mpFrameData->mpFirstBackWin = this;
} }
...@@ -203,20 +205,23 @@ sal_Bool Window::ImplRestoreOverlapBackground( Region& rInvRegion ) ...@@ -203,20 +205,23 @@ sal_Bool Window::ImplRestoreOverlapBackground( Region& rInvRegion )
Point aDevPt; Point aDevPt;
Point aDestPt( mnOutOffX, mnOutOffY ); Point aDestPt( mnOutOffX, mnOutOffY );
Size aDevSize = mpWindowImpl->mpOverlapData->mpSaveBackDev->GetOutputSizePixel(); Size aDevSize = mpWindowImpl->mpOverlapData->mpSaveBackDev->GetOutputSizePixel();
OutputDevice *pOutDev = mpWindowImpl->mpFrameWindow->GetOutDev();
if ( mpWindowImpl->mpOverlapData->mpSaveBackRgn ) if ( mpWindowImpl->mpOverlapData->mpSaveBackRgn )
{ {
mpWindowImpl->mpOverlapData->mpSaveBackRgn->Intersect( mpWindowImpl->maWinClipRegion ); mpWindowImpl->mpOverlapData->mpSaveBackRgn->Intersect( mpWindowImpl->maWinClipRegion );
rInvRegion = mpWindowImpl->maWinClipRegion; rInvRegion = mpWindowImpl->maWinClipRegion;
rInvRegion.Exclude( *mpWindowImpl->mpOverlapData->mpSaveBackRgn ); rInvRegion.Exclude( *mpWindowImpl->mpOverlapData->mpSaveBackRgn );
mpWindowImpl->mpFrameWindow->ImplDrawFrameDev( aDestPt, aDevPt, aDevSize, pOutDev->ImplDrawFrameDev( aDestPt, aDevPt, aDevSize,
*(mpWindowImpl->mpOverlapData->mpSaveBackDev), *(mpWindowImpl->mpOverlapData->mpSaveBackDev),
*mpWindowImpl->mpOverlapData->mpSaveBackRgn ); *mpWindowImpl->mpOverlapData->mpSaveBackRgn );
} }
else else
{ {
mpWindowImpl->mpFrameWindow->ImplDrawFrameDev( aDestPt, aDevPt, aDevSize, pOutDev->ImplDrawFrameDev( aDestPt, aDevPt, aDevSize,
*(mpWindowImpl->mpOverlapData->mpSaveBackDev), *(mpWindowImpl->mpOverlapData->mpSaveBackDev),
mpWindowImpl->maWinClipRegion ); mpWindowImpl->maWinClipRegion );
} }
ImplDeleteOverlapBackground(); ImplDeleteOverlapBackground();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment