Kaydet (Commit) 3ce65a05 authored tarafından Caolán McNamara's avatar Caolán McNamara

nothing sets mpSaveBackDev anymore

Change-Id: I6be6a1cbcb63510469d8c419433bf05bf4fde6e5
üst 90826f78
......@@ -104,7 +104,6 @@ struct ImplWinData
struct ImplOverlapData
{
VclPtr<VirtualDevice> mpSaveBackDev; //< saved background bitmap
vcl::Region* mpSaveBackRgn; //< saved region, which must be invalidated
VclPtr<vcl::Window> mpNextBackWin; //< next window with saved background
};
......
......@@ -809,66 +809,11 @@ void Window::SaveBackground( const Point& rPos, const Size& rSize,
bool Window::ImplRestoreOverlapBackground( vcl::Region& rInvRegion )
{
if ( mpWindowImpl->mpOverlapData->mpSaveBackDev )
{
if ( mpWindowImpl->mbInitWinClipRegion )
ImplInitWinClipRegion();
if ( mpWindowImpl->mpOverlapData->mpSaveBackDev )
{
Point aDevPt;
Point aDestPt( mnOutOffX, mnOutOffY );
Size aDevSize = mpWindowImpl->mpOverlapData->mpSaveBackDev->GetOutputSizePixel();
Window *pWin = mpWindowImpl->mpFrameWindow;
if ( mpWindowImpl->mpOverlapData->mpSaveBackRgn )
{
mpWindowImpl->mpOverlapData->mpSaveBackRgn->Intersect( mpWindowImpl->maWinClipRegion );
rInvRegion = mpWindowImpl->maWinClipRegion;
rInvRegion.Exclude( *mpWindowImpl->mpOverlapData->mpSaveBackRgn );
pWin->drawFrameDev( aDestPt, aDevPt, aDevSize,
*(mpWindowImpl->mpOverlapData->mpSaveBackDev),
*mpWindowImpl->mpOverlapData->mpSaveBackRgn );
}
else
{
pWin->drawFrameDev( aDestPt, aDevPt, aDevSize,
*(mpWindowImpl->mpOverlapData->mpSaveBackDev),
mpWindowImpl->maWinClipRegion );
}
ImplDeleteOverlapBackground();
}
return true;
}
return false;
}
void Window::ImplDeleteOverlapBackground()
{
if ( mpWindowImpl->mpOverlapData->mpSaveBackDev )
{
mpWindowImpl->mpOverlapData->mpSaveBackDev.disposeAndClear();
if ( mpWindowImpl->mpOverlapData->mpSaveBackRgn )
{
delete mpWindowImpl->mpOverlapData->mpSaveBackRgn;
mpWindowImpl->mpOverlapData->mpSaveBackRgn = nullptr;
}
// remove window from the list
if ( mpWindowImpl->mpFrameData->mpFirstBackWin == this )
mpWindowImpl->mpFrameData->mpFirstBackWin = mpWindowImpl->mpOverlapData->mpNextBackWin;
else
{
vcl::Window* pTemp = mpWindowImpl->mpFrameData->mpFirstBackWin;
while ( pTemp->mpWindowImpl->mpOverlapData->mpNextBackWin.get() != this )
pTemp = pTemp->mpWindowImpl->mpOverlapData->mpNextBackWin;
pTemp->mpWindowImpl->mpOverlapData->mpNextBackWin = mpWindowImpl->mpOverlapData->mpNextBackWin;
}
mpWindowImpl->mpOverlapData->mpNextBackWin = nullptr;
}
}
void Window::ImplInvalidateAllOverlapBackgrounds()
......
......@@ -1061,8 +1061,6 @@ void Window::SetWindowRegionPixel()
if ( IsReallyVisible() )
{
// restore background storage
if ( mpWindowImpl->mpOverlapData && mpWindowImpl->mpOverlapData->mpSaveBackDev )
ImplDeleteOverlapBackground();
if ( mpWindowImpl->mpFrameData->mpFirstBackWin )
ImplInvalidateAllOverlapBackgrounds();
Rectangle aRect( Point( mnOutOffX, mnOutOffY ), Size( mnOutWidth, mnOutHeight ) );
......@@ -1148,8 +1146,6 @@ void Window::SetWindowRegionPixel( const vcl::Region& rRegion )
if ( IsReallyVisible() )
{
// restore background storage
if ( mpWindowImpl->mpOverlapData && mpWindowImpl->mpOverlapData->mpSaveBackDev )
ImplDeleteOverlapBackground();
if ( mpWindowImpl->mpFrameData->mpFirstBackWin )
ImplInvalidateAllOverlapBackgrounds();
Rectangle aRect( Point( mnOutOffX, mnOutOffY ), Size( mnOutWidth, mnOutHeight ) );
......
......@@ -934,7 +934,6 @@ void Window::ImplInit( vcl::Window* pParent, WinBits nStyle, SystemParentData* p
if ( mpWindowImpl->mbOverlapWin )
{
mpWindowImpl->mpOverlapData = new ImplOverlapData;
mpWindowImpl->mpOverlapData->mpSaveBackDev = nullptr;
mpWindowImpl->mpOverlapData->mpSaveBackRgn = nullptr;
mpWindowImpl->mpOverlapData->mpNextBackWin = nullptr;
}
......@@ -1754,8 +1753,6 @@ void Window::ImplPosSizeWindow( long nX, long nY,
if ( bNewPos || bNewSize )
{
// reset background storage
if ( mpWindowImpl->mpOverlapData && mpWindowImpl->mpOverlapData->mpSaveBackDev )
ImplDeleteOverlapBackground();
if ( mpWindowImpl->mpFrameData->mpFirstBackWin )
ImplInvalidateAllOverlapBackgrounds();
// set Clip-Flag
......
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