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 ...@@ -104,7 +104,6 @@ struct ImplWinData
struct ImplOverlapData struct ImplOverlapData
{ {
VclPtr<VirtualDevice> mpSaveBackDev; //< saved background bitmap
vcl::Region* mpSaveBackRgn; //< saved region, which must be invalidated vcl::Region* mpSaveBackRgn; //< saved region, which must be invalidated
VclPtr<vcl::Window> mpNextBackWin; //< next window with saved background VclPtr<vcl::Window> mpNextBackWin; //< next window with saved background
}; };
......
...@@ -809,66 +809,11 @@ void Window::SaveBackground( const Point& rPos, const Size& rSize, ...@@ -809,66 +809,11 @@ void Window::SaveBackground( const Point& rPos, const Size& rSize,
bool Window::ImplRestoreOverlapBackground( vcl::Region& rInvRegion ) 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; return false;
} }
void Window::ImplDeleteOverlapBackground() 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() void Window::ImplInvalidateAllOverlapBackgrounds()
......
...@@ -1061,8 +1061,6 @@ void Window::SetWindowRegionPixel() ...@@ -1061,8 +1061,6 @@ void Window::SetWindowRegionPixel()
if ( IsReallyVisible() ) if ( IsReallyVisible() )
{ {
// restore background storage // restore background storage
if ( mpWindowImpl->mpOverlapData && mpWindowImpl->mpOverlapData->mpSaveBackDev )
ImplDeleteOverlapBackground();
if ( mpWindowImpl->mpFrameData->mpFirstBackWin ) if ( mpWindowImpl->mpFrameData->mpFirstBackWin )
ImplInvalidateAllOverlapBackgrounds(); ImplInvalidateAllOverlapBackgrounds();
Rectangle aRect( Point( mnOutOffX, mnOutOffY ), Size( mnOutWidth, mnOutHeight ) ); Rectangle aRect( Point( mnOutOffX, mnOutOffY ), Size( mnOutWidth, mnOutHeight ) );
...@@ -1148,8 +1146,6 @@ void Window::SetWindowRegionPixel( const vcl::Region& rRegion ) ...@@ -1148,8 +1146,6 @@ void Window::SetWindowRegionPixel( const vcl::Region& rRegion )
if ( IsReallyVisible() ) if ( IsReallyVisible() )
{ {
// restore background storage // restore background storage
if ( mpWindowImpl->mpOverlapData && mpWindowImpl->mpOverlapData->mpSaveBackDev )
ImplDeleteOverlapBackground();
if ( mpWindowImpl->mpFrameData->mpFirstBackWin ) if ( mpWindowImpl->mpFrameData->mpFirstBackWin )
ImplInvalidateAllOverlapBackgrounds(); ImplInvalidateAllOverlapBackgrounds();
Rectangle aRect( Point( mnOutOffX, mnOutOffY ), Size( mnOutWidth, mnOutHeight ) ); Rectangle aRect( Point( mnOutOffX, mnOutOffY ), Size( mnOutWidth, mnOutHeight ) );
......
...@@ -934,7 +934,6 @@ void Window::ImplInit( vcl::Window* pParent, WinBits nStyle, SystemParentData* p ...@@ -934,7 +934,6 @@ void Window::ImplInit( vcl::Window* pParent, WinBits nStyle, SystemParentData* p
if ( mpWindowImpl->mbOverlapWin ) if ( mpWindowImpl->mbOverlapWin )
{ {
mpWindowImpl->mpOverlapData = new ImplOverlapData; mpWindowImpl->mpOverlapData = new ImplOverlapData;
mpWindowImpl->mpOverlapData->mpSaveBackDev = nullptr;
mpWindowImpl->mpOverlapData->mpSaveBackRgn = nullptr; mpWindowImpl->mpOverlapData->mpSaveBackRgn = nullptr;
mpWindowImpl->mpOverlapData->mpNextBackWin = nullptr; mpWindowImpl->mpOverlapData->mpNextBackWin = nullptr;
} }
...@@ -1754,8 +1753,6 @@ void Window::ImplPosSizeWindow( long nX, long nY, ...@@ -1754,8 +1753,6 @@ void Window::ImplPosSizeWindow( long nX, long nY,
if ( bNewPos || bNewSize ) if ( bNewPos || bNewSize )
{ {
// reset background storage // reset background storage
if ( mpWindowImpl->mpOverlapData && mpWindowImpl->mpOverlapData->mpSaveBackDev )
ImplDeleteOverlapBackground();
if ( mpWindowImpl->mpFrameData->mpFirstBackWin ) if ( mpWindowImpl->mpFrameData->mpFirstBackWin )
ImplInvalidateAllOverlapBackgrounds(); ImplInvalidateAllOverlapBackgrounds();
// set Clip-Flag // 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