[Libreoffice-commits] core.git: 13 commits - include/vcl vcl/inc vcl/ios vcl/osx vcl/source

Caolán McNamara caolanm at redhat.com
Mon Feb 1 00:12:05 PST 2016


 include/vcl/dialog.hxx                   |    1 
 include/vcl/floatwin.hxx                 |    1 
 include/vcl/syswin.hxx                   |    3 
 include/vcl/window.hxx                   |    8 -
 vcl/inc/svdata.hxx                       |    1 
 vcl/inc/window.h                         |   12 -
 vcl/ios/iosinst.cxx                      |    1 
 vcl/osx/salinst.cxx                      |    1 
 vcl/source/app/help.cxx                  |    3 
 vcl/source/control/imp_listbox.cxx       |    2 
 vcl/source/opengl/OpenGLHelper.cxx       |    1 
 vcl/source/window/clipping.cxx           |  231 -------------------------------
 vcl/source/window/dialog.cxx             |    4 
 vcl/source/window/floatwin.cxx           |    5 
 vcl/source/window/menufloatingwindow.cxx |    1 
 vcl/source/window/paint.cxx              |   18 --
 vcl/source/window/stacking.cxx           |    7 
 vcl/source/window/syswin.cxx             |   27 ---
 vcl/source/window/window.cxx             |   48 ------
 vcl/source/window/winproc.cxx            |   12 -
 20 files changed, 3 insertions(+), 384 deletions(-)

New commits:
commit 0ee9022fda949fe672a111e58ae965531da03694
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sat Jan 30 19:49:57 2016 +0000

    ImplIsWindowInFront is now unused
    
    Change-Id: I20a7b3acd1af598638282063ad31c0ba91edaf1b

diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx
index 52874b7..bc762f4 100644
--- a/include/vcl/window.hxx
+++ b/include/vcl/window.hxx
@@ -738,8 +738,6 @@ private:
     SAL_DLLPRIVATE long                 ImplLogicUnitToPixelX( long nX, MapUnit eUnit );
     SAL_DLLPRIVATE long                 ImplLogicUnitToPixelY( long nY, MapUnit eUnit );
 
-    SAL_DLLPRIVATE bool                 ImplIsWindowInFront( const vcl::Window* pTestWindow ) const;
-
     SAL_DLLPRIVATE static void          ImplNewInputContext();
 
     SAL_DLLPRIVATE void                 ImplCallActivateListeners(vcl::Window*);
diff --git a/vcl/source/window/clipping.cxx b/vcl/source/window/clipping.cxx
index 821db35..fbbc8fc 100644
--- a/vcl/source/window/clipping.cxx
+++ b/vcl/source/window/clipping.cxx
@@ -683,92 +683,6 @@ void Window::ImplCalcOverlapRegion( const Rectangle& rSourceRect, vcl::Region& r
     }
 }
 
-bool Window::ImplIsWindowInFront( const vcl::Window* pTestWindow ) const
-{
-    // check for overlapping window
-    pTestWindow = pTestWindow->ImplGetFirstOverlapWindow();
-    const vcl::Window* pTempWindow = pTestWindow;
-    const vcl::Window* pThisWindow = ImplGetFirstOverlapWindow();
-    if ( pTempWindow == pThisWindow )
-        return false;
-    do
-    {
-        if ( pTempWindow == pThisWindow )
-            return true;
-        if ( pTempWindow->mpWindowImpl->mbFrame )
-            break;
-        pTempWindow = pTempWindow->mpWindowImpl->mpOverlapWindow;
-    }
-    while ( pTempWindow );
-    pTempWindow = pThisWindow;
-    do
-    {
-        if ( pTempWindow == pTestWindow )
-            return false;
-        if ( pTempWindow->mpWindowImpl->mbFrame )
-            break;
-        pTempWindow = pTempWindow->mpWindowImpl->mpOverlapWindow;
-    }
-    while ( pTempWindow );
-
-    // move window to same level
-    if ( pThisWindow->mpWindowImpl->mpOverlapWindow != pTestWindow->mpWindowImpl->mpOverlapWindow )
-    {
-        sal_uInt16 nThisLevel = 0;
-        sal_uInt16 nTestLevel = 0;
-        pTempWindow = pThisWindow;
-        do
-        {
-            nThisLevel++;
-            pTempWindow = pTempWindow->mpWindowImpl->mpOverlapWindow;
-        }
-        while ( !pTempWindow->mpWindowImpl->mbFrame );
-        pTempWindow = pTestWindow;
-        do
-        {
-            nTestLevel++;
-            pTempWindow = pTempWindow->mpWindowImpl->mpOverlapWindow;
-        }
-        while ( !pTempWindow->mpWindowImpl->mbFrame );
-
-        if ( nThisLevel < nTestLevel )
-        {
-            do
-            {
-                if ( pTestWindow->mpWindowImpl->mpOverlapWindow == pThisWindow->mpWindowImpl->mpOverlapWindow )
-                    break;
-                if ( pTestWindow->mpWindowImpl->mbFrame )
-                    break;
-                pTestWindow = pTestWindow->mpWindowImpl->mpOverlapWindow;
-            }
-            while ( pTestWindow );
-        }
-        else
-        {
-            do
-            {
-                if ( pThisWindow->mpWindowImpl->mpOverlapWindow == pTempWindow->mpWindowImpl->mpOverlapWindow )
-                    break;
-                if ( pThisWindow->mpWindowImpl->mbFrame )
-                    break;
-                pThisWindow = pThisWindow->mpWindowImpl->mpOverlapWindow;
-            }
-            while ( pThisWindow );
-        }
-    }
-
-    // if TestWindow is before ThisWindow, it is in front
-    pTempWindow = pTestWindow;
-    while ( pTempWindow )
-    {
-        if ( pTempWindow == pThisWindow )
-            return true;
-        pTempWindow = pTempWindow->mpWindowImpl->mpNext;
-    }
-
-    return false;
-}
-
 void Window::SaveBackground( const Point& rPos, const Size& rSize,
                              const Point& rDestOff, VirtualDevice& rSaveDevice )
 {
commit 7ecb1c6d8e5542dc853e42e7e3f55c62d829dab1
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sat Jan 30 19:46:34 2016 +0000

    ImplOverlapData is no longer used
    
    Change-Id: I8fac0daefbafc9fe9e4d6cd385f543e14ac15f8a

diff --git a/vcl/inc/window.h b/vcl/inc/window.h
index 80d1d80..5203564 100644
--- a/vcl/inc/window.h
+++ b/vcl/inc/window.h
@@ -102,11 +102,6 @@ struct ImplWinData
                         maTopWindowChildren;
 };
 
-struct ImplOverlapData
-{
-    vcl::Region*        mpSaveBackRgn;          //< saved region, which must be invalidated
-};
-
 struct ImplFrameData
 {
     Idle                maPaintIdle;            //< paint idle handler
@@ -188,7 +183,6 @@ public:
     ~WindowImpl();
 
     ImplWinData*        mpWinData;
-    ImplOverlapData*    mpOverlapData;
     ImplFrameData*      mpFrameData;
     SalFrame*           mpFrame;
     SalObject*          mpSysObj;
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index f845fc2..3489e0d 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -550,9 +550,6 @@ void Window::dispose()
         delete mpWindowImpl->mpWinData;
     }
 
-    // cleanup overlap related window data
-    delete mpWindowImpl->mpOverlapData;
-
     // remove BorderWindow or Frame window data
     mpWindowImpl->mpBorderWindow.disposeAndClear();
     if ( mpWindowImpl->mbFrame )
@@ -612,7 +609,6 @@ WindowImpl::WindowImpl( WindowType nType )
     maWinRegion                         = vcl::Region(true);
     maWinClipRegion                     = vcl::Region(true);
     mpWinData                           = nullptr;                      // Extra Window Data, that we don't need for all windows
-    mpOverlapData                       = nullptr;                      // Overlap Data
     mpFrameData                         = nullptr;                      // Frame Data
     mpFrame                             = nullptr;                      // Pointer to frame window
     mpSysObj                            = nullptr;
@@ -930,13 +926,6 @@ void Window::ImplInit( vcl::Window* pParent, WinBits nStyle, SystemParentData* p
     ImplInsertWindow( pParent );
     mpWindowImpl->mnStyle = nStyle;
 
-    // Overlap-Window-Data
-    if ( mpWindowImpl->mbOverlapWin )
-    {
-        mpWindowImpl->mpOverlapData                   = new ImplOverlapData;
-        mpWindowImpl->mpOverlapData->mpSaveBackRgn    = nullptr;
-    }
-
     if( pParent && ! mpWindowImpl->mbFrame )
         mbEnableRTL = AllSettings::GetLayoutRTL();
 
commit 11f1fe95f9b844cb71e02d237d8034b9ed8244f3
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sat Jan 30 19:42:53 2016 +0000

    ImplInvalidateAllOverlapBackgrounds is empty now
    
    Change-Id: If813d937879a814fe89921fdc81af3e71b2a521f

diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx
index 0088047..52874b7 100644
--- a/include/vcl/window.hxx
+++ b/include/vcl/window.hxx
@@ -627,8 +627,6 @@ protected:
 
     SAL_DLLPRIVATE void                 ImplScroll( const Rectangle& rRect, long nHorzScroll, long nVertScroll, ScrollFlags nFlags );
 
-    SAL_DLLPRIVATE void                 ImplInvalidateAllOverlapBackgrounds();
-
     SAL_DLLPRIVATE bool                 ImplSetClipFlagChildren( bool bSysObjOnlySmaller = false );
     SAL_DLLPRIVATE bool                 ImplSetClipFlagOverlapWindows( bool bSysObjOnlySmaller = false );
 
diff --git a/vcl/source/window/clipping.cxx b/vcl/source/window/clipping.cxx
index 31893b9..821db35 100644
--- a/vcl/source/window/clipping.cxx
+++ b/vcl/source/window/clipping.cxx
@@ -801,10 +801,6 @@ void Window::SaveBackground( const Point& rPos, const Size& rSize,
         rSaveDevice.DrawOutDev( rDestOff, rSize, rPos, rSize, *this );
 }
 
-void Window::ImplInvalidateAllOverlapBackgrounds()
-{
-}
-
 } /* namespace vcl */
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit aa09ea1ee2937a8933ea30e4cd86a55e473690e3
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sat Jan 30 19:42:17 2016 +0000

    mpFirstBackWin is always null now
    
    Change-Id: Ia03747824c7c6134bc91817538b3f79281aefb8b

diff --git a/vcl/inc/window.h b/vcl/inc/window.h
index 6911d0b..80d1d80 100644
--- a/vcl/inc/window.h
+++ b/vcl/inc/window.h
@@ -117,7 +117,6 @@ struct ImplFrameData
     VclPtr<vcl::Window> mpFocusWin;             //< focus window (is also set, when frame doesn't have the focus)
     VclPtr<vcl::Window> mpMouseMoveWin;         //< last window, where MouseMove() called
     VclPtr<vcl::Window> mpMouseDownWin;         //< last window, where MouseButtonDown() called
-    VclPtr<vcl::Window> mpFirstBackWin;         //< first overlap-window with saved background
     ::std::vector<VclPtr<vcl::Window> > maOwnerDrawList;    //< List of system windows with owner draw decoration
     PhysicalFontCollection* mpFontCollection;   //< Font-List for this frame
     ImplFontCache*      mpFontCache;            //< Font-Cache for this frame
diff --git a/vcl/source/window/clipping.cxx b/vcl/source/window/clipping.cxx
index ee318e1..31893b9 100644
--- a/vcl/source/window/clipping.cxx
+++ b/vcl/source/window/clipping.cxx
@@ -33,9 +33,6 @@ void Window::InitClipRegion()
 
     vcl::Region  aRegion;
 
-    // Put back backed up background
-    if ( mpWindowImpl->mpFrameData->mpFirstBackWin )
-        ImplInvalidateAllOverlapBackgrounds();
     if ( mpWindowImpl->mbInPaint )
         aRegion = *(mpWindowImpl->mpPaintRegion);
     else
@@ -321,9 +318,6 @@ bool Window::ImplSysObjClip( const vcl::Region* pOldRegion )
                     bUpdate = aNewRegion == *pWinChildClipRegion;
                 }
 
-                if ( mpWindowImpl->mpFrameData->mpFirstBackWin )
-                    ImplInvalidateAllOverlapBackgrounds();
-
                 vcl::Region      aRegion = *pWinChildClipRegion;
                 Rectangle   aWinRect( Point( mnOutOffX, mnOutOffY ), Size( mnOutWidth, mnOutHeight ) );
                 vcl::Region      aWinRectRegion( aWinRect );
@@ -809,25 +803,6 @@ void Window::SaveBackground( const Point& rPos, const Size& rSize,
 
 void Window::ImplInvalidateAllOverlapBackgrounds()
 {
-    vcl::Window* pWindow = mpWindowImpl->mpFrameData->mpFirstBackWin;
-    if (pWindow)
-    {
-        if ( ImplIsWindowInFront( pWindow ) )
-        {
-            Rectangle aRect1( Point( mnOutOffX, mnOutOffY ),
-                              Size( mnOutWidth, mnOutHeight ) );
-            Rectangle aRect2( Point( pWindow->mnOutOffX, pWindow->mnOutOffY ),
-                              Size( pWindow->mnOutWidth, pWindow->mnOutHeight ) );
-            aRect1.Intersection( aRect2 );
-            if ( !aRect1.IsEmpty() )
-            {
-                if ( !pWindow->mpWindowImpl->mpOverlapData->mpSaveBackRgn )
-                    pWindow->mpWindowImpl->mpOverlapData->mpSaveBackRgn = new vcl::Region( aRect2 );
-                pWindow->mpWindowImpl->mpOverlapData->mpSaveBackRgn->Exclude( aRect1 );
-            }
-
-        }
-    }
 }
 
 } /* namespace vcl */
diff --git a/vcl/source/window/paint.cxx b/vcl/source/window/paint.cxx
index 483a55c79..1c6500d 100644
--- a/vcl/source/window/paint.cxx
+++ b/vcl/source/window/paint.cxx
@@ -764,10 +764,6 @@ void Window::ImplInvalidateParentFrameRegion( vcl::Region& rRegion )
 
 void Window::ImplInvalidate( const vcl::Region* pRegion, InvalidateFlags nFlags )
 {
-    // reset background storage
-    if ( mpWindowImpl->mpFrameData->mpFirstBackWin )
-        ImplInvalidateAllOverlapBackgrounds();
-
     // check what has to be redrawn
     bool bInvalidateAll = !pRegion;
 
@@ -1060,9 +1056,6 @@ void Window::SetWindowRegionPixel()
 
             if ( IsReallyVisible() )
             {
-                // restore background storage
-                if ( mpWindowImpl->mpFrameData->mpFirstBackWin )
-                    ImplInvalidateAllOverlapBackgrounds();
                 Rectangle   aRect( Point( mnOutOffX, mnOutOffY ), Size( mnOutWidth, mnOutHeight ) );
                 vcl::Region      aRegion( aRect );
                 ImplInvalidateParentFrameRegion( aRegion );
@@ -1145,9 +1138,6 @@ void Window::SetWindowRegionPixel( const vcl::Region& rRegion )
 
         if ( IsReallyVisible() )
         {
-            // restore background storage
-            if ( mpWindowImpl->mpFrameData->mpFirstBackWin )
-                ImplInvalidateAllOverlapBackgrounds();
             Rectangle   aRect( Point( mnOutOffX, mnOutOffY ), Size( mnOutWidth, mnOutHeight ) );
             vcl::Region      aRegion( aRect );
             ImplInvalidateParentFrameRegion( aRegion );
@@ -1546,10 +1536,6 @@ void Window::ImplScroll( const Rectangle& rRect,
     if ( !nHorzScroll && !nVertScroll )
         return;
 
-    // restore background storage
-    if ( mpWindowImpl->mpFrameData->mpFirstBackWin )
-        ImplInvalidateAllOverlapBackgrounds();
-
     if ( mpWindowImpl->mpCursor )
         mpWindowImpl->mpCursor->ImplSuspend();
 
diff --git a/vcl/source/window/stacking.cxx b/vcl/source/window/stacking.cxx
index 6f9ef3a..8418919 100644
--- a/vcl/source/window/stacking.cxx
+++ b/vcl/source/window/stacking.cxx
@@ -307,9 +307,6 @@ void Window::ImplToTop( ToTopFlags nFlags )
             // recalculate ClipRegion of this and all overlapping windows
             if ( IsReallyVisible() )
             {
-                // reset background storage
-                if ( mpWindowImpl->mpFrameData->mpFirstBackWin )
-                    ImplInvalidateAllOverlapBackgrounds();
                 mpWindowImpl->mpOverlapWindow->ImplSetClipFlagOverlapWindows();
             }
         }
@@ -546,10 +543,6 @@ void Window::SetZOrder( vcl::Window* pRefWindow, ZOrderFlags nFlags )
 
     if ( IsReallyVisible() )
     {
-        // restore background storage
-        if ( mpWindowImpl->mpFrameData->mpFirstBackWin )
-            ImplInvalidateAllOverlapBackgrounds();
-
         if ( mpWindowImpl->mbInitWinClipRegion || !mpWindowImpl->maWinClipRegion.IsEmpty() )
         {
             bool bInitWinClipRegion = mpWindowImpl->mbInitWinClipRegion;
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 856111e..f845fc2 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -1027,7 +1027,6 @@ void Window::ImplInit( vcl::Window* pParent, WinBits nStyle, SystemParentData* p
         mpWindowImpl->mpFrameData->mpFocusWin         = nullptr;
         mpWindowImpl->mpFrameData->mpMouseMoveWin     = nullptr;
         mpWindowImpl->mpFrameData->mpMouseDownWin     = nullptr;
-        mpWindowImpl->mpFrameData->mpFirstBackWin     = nullptr;
         mpWindowImpl->mpFrameData->mpFontCollection   = pSVData->maGDIData.mpScreenFontList;
         mpWindowImpl->mpFrameData->mpFontCache        = pSVData->maGDIData.mpScreenFontCache;
         mpWindowImpl->mpFrameData->mnFocusId          = nullptr;
@@ -1572,9 +1571,6 @@ void Window::ImplPosSizeWindow( long nX, long nY,
 
     if ( IsReallyVisible() )
     {
-        if ( mpWindowImpl->mpFrameData->mpFirstBackWin )
-            ImplInvalidateAllOverlapBackgrounds();
-
         Rectangle aOldWinRect( Point( nOldOutOffX, nOldOutOffY ),
                                Size( nOldOutWidth, nOldOutHeight ) );
         pOldRegion = new vcl::Region( aOldWinRect );
@@ -1751,9 +1747,6 @@ void Window::ImplPosSizeWindow( long nX, long nY,
         {
             if ( bNewPos || bNewSize )
             {
-                // reset background storage
-                if ( mpWindowImpl->mpFrameData->mpFirstBackWin )
-                    ImplInvalidateAllOverlapBackgrounds();
                 // set Clip-Flag
                 bUpdateSysObjClip = !ImplSetClipFlag( true );
             }
@@ -2507,9 +2500,6 @@ void Window::Show(bool bVisible, ShowFlags nFlags)
 
     if( aDogTag.IsDead() )
         return;
-    // invalidate all saved backgrounds
-    if ( mpWindowImpl->mpFrameData->mpFirstBackWin )
-        ImplInvalidateAllOverlapBackgrounds();
 
     // the SHOW/HIDE events also serve as indicators to send child creation/destroy events to the access bridge
     // However, the access bridge only uses this event if the data member is not NULL (it's kind of a hack that
commit b9532822b5958f71bbf2b968727731d8d221c0ee
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sat Jan 30 19:39:19 2016 +0000

    mpNextBackWin is always null now
    
    Change-Id: Idd789433606da3452b9cb0a702abdf549fb1c8d4

diff --git a/vcl/inc/window.h b/vcl/inc/window.h
index 1860655..6911d0b 100644
--- a/vcl/inc/window.h
+++ b/vcl/inc/window.h
@@ -105,7 +105,6 @@ struct ImplWinData
 struct ImplOverlapData
 {
     vcl::Region*        mpSaveBackRgn;          //< saved region, which must be invalidated
-    VclPtr<vcl::Window> mpNextBackWin;          //< next window with saved background
 };
 
 struct ImplFrameData
diff --git a/vcl/source/window/clipping.cxx b/vcl/source/window/clipping.cxx
index 565bfee..ee318e1 100644
--- a/vcl/source/window/clipping.cxx
+++ b/vcl/source/window/clipping.cxx
@@ -810,12 +810,8 @@ void Window::SaveBackground( const Point& rPos, const Size& rSize,
 void Window::ImplInvalidateAllOverlapBackgrounds()
 {
     vcl::Window* pWindow = mpWindowImpl->mpFrameData->mpFirstBackWin;
-    while ( pWindow )
+    if (pWindow)
     {
-        // remember next window here already, as this window could
-        // be removed within the next if clause from the list
-        vcl::Window* pNext = pWindow->mpWindowImpl->mpOverlapData->mpNextBackWin;
-
         if ( ImplIsWindowInFront( pWindow ) )
         {
             Rectangle aRect1( Point( mnOutOffX, mnOutOffY ),
@@ -831,8 +827,6 @@ void Window::ImplInvalidateAllOverlapBackgrounds()
             }
 
         }
-
-        pWindow = pNext;
     }
 }
 
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 0e08765..856111e 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -935,7 +935,6 @@ void Window::ImplInit( vcl::Window* pParent, WinBits nStyle, SystemParentData* p
     {
         mpWindowImpl->mpOverlapData                   = new ImplOverlapData;
         mpWindowImpl->mpOverlapData->mpSaveBackRgn    = nullptr;
-        mpWindowImpl->mpOverlapData->mpNextBackWin    = nullptr;
     }
 
     if( pParent && ! mpWindowImpl->mbFrame )
commit aa644ef77126426748312f5cc46cffce0e9a09d9
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sat Jan 30 19:36:59 2016 +0000

    ImplRestoreOverlapBackground is always false
    
    Change-Id: I38afa9e0e4a928190c55b8a8f3d822873141fde4

diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx
index 4320d5c..0088047 100644
--- a/include/vcl/window.hxx
+++ b/include/vcl/window.hxx
@@ -627,7 +627,6 @@ protected:
 
     SAL_DLLPRIVATE void                 ImplScroll( const Rectangle& rRect, long nHorzScroll, long nVertScroll, ScrollFlags nFlags );
 
-    SAL_DLLPRIVATE bool                 ImplRestoreOverlapBackground( vcl::Region& rInvRegion );
     SAL_DLLPRIVATE void                 ImplInvalidateAllOverlapBackgrounds();
 
     SAL_DLLPRIVATE bool                 ImplSetClipFlagChildren( bool bSysObjOnlySmaller = false );
diff --git a/vcl/source/window/clipping.cxx b/vcl/source/window/clipping.cxx
index 4d4fdc6..565bfee 100644
--- a/vcl/source/window/clipping.cxx
+++ b/vcl/source/window/clipping.cxx
@@ -807,11 +807,6 @@ void Window::SaveBackground( const Point& rPos, const Size& rSize,
         rSaveDevice.DrawOutDev( rDestOff, rSize, rPos, rSize, *this );
 }
 
-bool Window::ImplRestoreOverlapBackground( vcl::Region& rInvRegion )
-{
-    return false;
-}
-
 void Window::ImplInvalidateAllOverlapBackgrounds()
 {
     vcl::Window* pWindow = mpWindowImpl->mpFrameData->mpFirstBackWin;
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index b40cda2..0e08765 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -2344,21 +2344,10 @@ void Window::Show(bool bVisible, ShowFlags nFlags)
 
         if ( mpWindowImpl->mbReallyVisible )
         {
-            vcl::Region  aInvRegion;
-            bool    bSaveBack = false;
+            if ( mpWindowImpl->mbInitWinClipRegion )
+                ImplInitWinClipRegion();
 
-            if ( ImplIsOverlapWindow() && !mpWindowImpl->mbFrame )
-            {
-                if ( ImplRestoreOverlapBackground( aInvRegion ) )
-                    bSaveBack = true;
-            }
-
-            if ( !bSaveBack )
-            {
-                if ( mpWindowImpl->mbInitWinClipRegion )
-                    ImplInitWinClipRegion();
-                aInvRegion = mpWindowImpl->maWinClipRegion;
-            }
+            vcl::Region aInvRegion = mpWindowImpl->maWinClipRegion;
 
             if( aDogTag.IsDead() )
                 return;
commit 8075107cdecdb181b6cbc2bb280e974521dba247
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sat Jan 30 19:35:30 2016 +0000

    ImplDeleteOverlapBackground is empty now
    
    Change-Id: Ie022bb51da1f57b9db9362bb34423d9c921f4264

diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx
index 24e89f4..4320d5c 100644
--- a/include/vcl/window.hxx
+++ b/include/vcl/window.hxx
@@ -585,8 +585,6 @@ public:
 
     SAL_DLLPRIVATE void                 ImplUpdateAll( bool bOverlapWindows = true );
 
-    SAL_DLLPRIVATE void                 ImplDeleteOverlapBackground();
-
     SAL_DLLPRIVATE void                 ImplControlFocus( GetFocusFlags nFlags = GetFocusFlags::NONE );
 
     SAL_DLLPRIVATE void                 ImplMirrorFramePos( Point &pt ) const;
diff --git a/vcl/source/window/clipping.cxx b/vcl/source/window/clipping.cxx
index 89a12a0..4d4fdc6 100644
--- a/vcl/source/window/clipping.cxx
+++ b/vcl/source/window/clipping.cxx
@@ -812,10 +812,6 @@ bool Window::ImplRestoreOverlapBackground( vcl::Region& rInvRegion )
     return false;
 }
 
-void Window::ImplDeleteOverlapBackground()
-{
-}
-
 void Window::ImplInvalidateAllOverlapBackgrounds()
 {
     vcl::Window* pWindow = mpWindowImpl->mpFrameData->mpFirstBackWin;
@@ -837,8 +833,6 @@ void Window::ImplInvalidateAllOverlapBackgrounds()
                 if ( !pWindow->mpWindowImpl->mpOverlapData->mpSaveBackRgn )
                     pWindow->mpWindowImpl->mpOverlapData->mpSaveBackRgn = new vcl::Region( aRect2 );
                 pWindow->mpWindowImpl->mpOverlapData->mpSaveBackRgn->Exclude( aRect1 );
-                if ( pWindow->mpWindowImpl->mpOverlapData->mpSaveBackRgn->IsEmpty() )
-                    pWindow->ImplDeleteOverlapBackground();
             }
 
         }
diff --git a/vcl/source/window/winproc.cxx b/vcl/source/window/winproc.cxx
index 1b27777..e2520c9 100644
--- a/vcl/source/window/winproc.cxx
+++ b/vcl/source/window/winproc.cxx
@@ -1574,18 +1574,6 @@ static bool ImplHandleLongPress(vcl::Window *pWindow, const SalLongPressEvent& r
 
 static void ImplHandlePaint( vcl::Window* pWindow, const Rectangle& rBoundRect, bool bImmediateUpdate )
 {
-    // give up background save when system paints arrive
-    vcl::Window* pSaveBackWin = pWindow->ImplGetWindowImpl()->mpFrameData->mpFirstBackWin;
-    while ( pSaveBackWin )
-    {
-        vcl::Window* pNext = pSaveBackWin->ImplGetWindowImpl()->mpOverlapData->mpNextBackWin;
-        Rectangle aRect( Point( pSaveBackWin->GetOutOffXPixel(), pSaveBackWin->GetOutOffYPixel() ),
-                         Size( pSaveBackWin->GetOutputWidthPixel(), pSaveBackWin->GetOutputHeightPixel() ) );
-        if ( aRect.IsOver( rBoundRect ) )
-            pSaveBackWin->ImplDeleteOverlapBackground();
-        pSaveBackWin = pNext;
-    }
-
     // system paint events must be checked for re-mirroring
     pWindow->ImplGetWindowImpl()->mnPaintFlags |= IMPL_PAINT_CHECKRTL;
 
commit 3ce65a05a59cae95e5758bd626f911ac46428a83
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sat Jan 30 19:33:39 2016 +0000

    nothing sets mpSaveBackDev anymore
    
    Change-Id: I6be6a1cbcb63510469d8c419433bf05bf4fde6e5

diff --git a/vcl/inc/window.h b/vcl/inc/window.h
index 2b8d848..1860655 100644
--- a/vcl/inc/window.h
+++ b/vcl/inc/window.h
@@ -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
 };
diff --git a/vcl/source/window/clipping.cxx b/vcl/source/window/clipping.cxx
index 05f8f4c..89a12a0 100644
--- a/vcl/source/window/clipping.cxx
+++ b/vcl/source/window/clipping.cxx
@@ -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()
diff --git a/vcl/source/window/paint.cxx b/vcl/source/window/paint.cxx
index 44aeb97..483a55c79 100644
--- a/vcl/source/window/paint.cxx
+++ b/vcl/source/window/paint.cxx
@@ -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 ) );
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index f34c8e0..b40cda2 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -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
commit 90826f783bc2c6b2a93d67fc89a99d146a7886bf
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sat Jan 30 19:29:21 2016 +0000

    mnSaveBackSize only set not read
    
    Change-Id: I257cb3803d055f55899a2f52bc3a88886380fb4e

diff --git a/vcl/inc/window.h b/vcl/inc/window.h
index db207895..2b8d848 100644
--- a/vcl/inc/window.h
+++ b/vcl/inc/window.h
@@ -107,7 +107,6 @@ 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
-    sal_uIntPtr         mnSaveBackSize;         //< bitmap size of saved background
 };
 
 struct ImplFrameData
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 1ce842d..f34c8e0 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -937,7 +937,6 @@ void Window::ImplInit( vcl::Window* pParent, WinBits nStyle, SystemParentData* p
         mpWindowImpl->mpOverlapData->mpSaveBackDev    = nullptr;
         mpWindowImpl->mpOverlapData->mpSaveBackRgn    = nullptr;
         mpWindowImpl->mpOverlapData->mpNextBackWin    = nullptr;
-        mpWindowImpl->mpOverlapData->mnSaveBackSize   = 0;
     }
 
     if( pParent && ! mpWindowImpl->mbFrame )
commit b253064e867a20d53658a39bfe74c2b1198c80ff
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sat Jan 30 19:28:40 2016 +0000

    mnAllSaveBackSize only set not read
    
    Change-Id: Ibc5a2313b0231613b3c41002c144672140bf31dd

diff --git a/vcl/inc/window.h b/vcl/inc/window.h
index 0d26b02..db207895 100644
--- a/vcl/inc/window.h
+++ b/vcl/inc/window.h
@@ -127,7 +127,6 @@ struct ImplFrameData
     sal_Int32           mnDPIX;                 //< Original Screen Resolution
     sal_Int32           mnDPIY;                 //< Original Screen Resolution
     ImplMapRes          maMapUnitRes;           //< for LogicUnitToPixel
-    sal_uIntPtr         mnAllSaveBackSize;      //< size of all bitmaps of saved backgrounds
     ImplSVEvent *       mnFocusId;              //< FocusId for PostUserLink
     ImplSVEvent *       mnMouseMoveId;          //< MoveId for PostUserLink
     long                mnLastMouseX;           //< last x mouse position
diff --git a/vcl/source/window/clipping.cxx b/vcl/source/window/clipping.cxx
index 03c8f44..05f8f4c 100644
--- a/vcl/source/window/clipping.cxx
+++ b/vcl/source/window/clipping.cxx
@@ -850,7 +850,6 @@ void Window::ImplDeleteOverlapBackground()
 {
     if ( mpWindowImpl->mpOverlapData->mpSaveBackDev )
     {
-        mpWindowImpl->mpFrameData->mnAllSaveBackSize -= mpWindowImpl->mpOverlapData->mnSaveBackSize;
         mpWindowImpl->mpOverlapData->mpSaveBackDev.disposeAndClear();
         if ( mpWindowImpl->mpOverlapData->mpSaveBackRgn )
         {
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 5876753..1ce842d 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -1033,7 +1033,6 @@ void Window::ImplInit( vcl::Window* pParent, WinBits nStyle, SystemParentData* p
         mpWindowImpl->mpFrameData->mpFirstBackWin     = nullptr;
         mpWindowImpl->mpFrameData->mpFontCollection   = pSVData->maGDIData.mpScreenFontList;
         mpWindowImpl->mpFrameData->mpFontCache        = pSVData->maGDIData.mpScreenFontCache;
-        mpWindowImpl->mpFrameData->mnAllSaveBackSize  = 0;
         mpWindowImpl->mpFrameData->mnFocusId          = nullptr;
         mpWindowImpl->mpFrameData->mnMouseMoveId      = nullptr;
         mpWindowImpl->mpFrameData->mnLastMouseX       = -1;
commit 760e696a4161b453f0d6d0fe3aefb96b9b5b3100
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sat Jan 30 19:27:41 2016 +0000

    nothing calls ImplSaveOverlapBackground now
    
    Change-Id: I4d40c4bf2aeb3880dfad754c53939236e667f433

diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx
index e757170..24e89f4 100644
--- a/include/vcl/window.hxx
+++ b/include/vcl/window.hxx
@@ -629,7 +629,6 @@ protected:
 
     SAL_DLLPRIVATE void                 ImplScroll( const Rectangle& rRect, long nHorzScroll, long nVertScroll, ScrollFlags nFlags );
 
-    SAL_DLLPRIVATE void                 ImplSaveOverlapBackground();
     SAL_DLLPRIVATE bool                 ImplRestoreOverlapBackground( vcl::Region& rInvRegion );
     SAL_DLLPRIVATE void                 ImplInvalidateAllOverlapBackgrounds();
 
diff --git a/vcl/source/window/clipping.cxx b/vcl/source/window/clipping.cxx
index 41ed2cb..03c8f44 100644
--- a/vcl/source/window/clipping.cxx
+++ b/vcl/source/window/clipping.cxx
@@ -25,9 +25,6 @@
 #include <salobj.hxx>
 #include <window.h>
 
-#define IMPL_MAXSAVEBACKSIZE    (640*480)
-#define IMPL_MAXALLSAVEBACKSIZE (800*600*2)
-
 namespace vcl {
 
 void Window::InitClipRegion()
@@ -810,46 +807,6 @@ void Window::SaveBackground( const Point& rPos, const Size& rSize,
         rSaveDevice.DrawOutDev( rDestOff, rSize, rPos, rSize, *this );
 }
 
-void Window::ImplSaveOverlapBackground()
-{
-    DBG_ASSERT( !mpWindowImpl->mpOverlapData->mpSaveBackDev, "Window::ImplSaveOverlapBackground() - Background already saved" );
-
-    if ( !mpWindowImpl->mbFrame )
-    {
-        sal_uLong nSaveBackSize = mnOutWidth*mnOutHeight;
-        if ( nSaveBackSize <= IMPL_MAXSAVEBACKSIZE )
-        {
-            if ( nSaveBackSize+mpWindowImpl->mpFrameData->mnAllSaveBackSize <= IMPL_MAXALLSAVEBACKSIZE )
-            {
-                Size aOutSize( mnOutWidth, mnOutHeight );
-                mpWindowImpl->mpOverlapData->mpSaveBackDev = VclPtr<VirtualDevice>::Create( *mpWindowImpl->mpFrameWindow );
-                if ( mpWindowImpl->mpOverlapData->mpSaveBackDev->SetOutputSizePixel( aOutSize ) )
-                {
-                    mpWindowImpl->mpFrameWindow->ImplUpdateAll();
-
-                    if ( mpWindowImpl->mbInitWinClipRegion )
-                        ImplInitWinClipRegion();
-
-                    mpWindowImpl->mpOverlapData->mnSaveBackSize = nSaveBackSize;
-                    mpWindowImpl->mpFrameData->mnAllSaveBackSize += nSaveBackSize;
-                    Point aDevPt;
-
-                    Window* pWin = mpWindowImpl->mpFrameWindow;
-                    pWin->getFrameDev( Point( mnOutOffX, mnOutOffY ),
-                                           aDevPt, aOutSize,
-                                           *(mpWindowImpl->mpOverlapData->mpSaveBackDev) );
-                    mpWindowImpl->mpOverlapData->mpNextBackWin = mpWindowImpl->mpFrameData->mpFirstBackWin;
-                    mpWindowImpl->mpFrameData->mpFirstBackWin = this;
-                }
-                else
-                {
-                    mpWindowImpl->mpOverlapData->mpSaveBackDev.disposeAndClear();
-                }
-            }
-        }
-    }
-}
-
 bool Window::ImplRestoreOverlapBackground( vcl::Region& rInvRegion )
 {
     if ( mpWindowImpl->mpOverlapData->mpSaveBackDev )
commit 29ab053c405afb5dfabf9696d73e22e61c9905f5
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sat Jan 30 19:27:06 2016 +0000

    mbSaveBack is now always false
    
    Change-Id: Ic8068b9003136c2eff5de0cc9435c0664410e04f

diff --git a/vcl/inc/window.h b/vcl/inc/window.h
index f61353a..0d26b02 100644
--- a/vcl/inc/window.h
+++ b/vcl/inc/window.h
@@ -108,7 +108,6 @@ struct ImplOverlapData
     vcl::Region*        mpSaveBackRgn;          //< saved region, which must be invalidated
     VclPtr<vcl::Window> mpNextBackWin;          //< next window with saved background
     sal_uIntPtr         mnSaveBackSize;         //< bitmap size of saved background
-    bool                mbSaveBack;             //< true: save background
 };
 
 struct ImplFrameData
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 480994f..5876753 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -938,7 +938,6 @@ void Window::ImplInit( vcl::Window* pParent, WinBits nStyle, SystemParentData* p
         mpWindowImpl->mpOverlapData->mpSaveBackRgn    = nullptr;
         mpWindowImpl->mpOverlapData->mpNextBackWin    = nullptr;
         mpWindowImpl->mpOverlapData->mnSaveBackSize   = 0;
-        mpWindowImpl->mpOverlapData->mbSaveBack       = false;
     }
 
     if( pParent && ! mpWindowImpl->mbFrame )
@@ -2455,9 +2454,6 @@ void Window::Show(bool bVisible, ShowFlags nFlags)
                 ImplFocusToTop( ToTopFlags::NONE, false );
             }
 
-            // save background
-            if ( mpWindowImpl->mpOverlapData && mpWindowImpl->mpOverlapData->mbSaveBack )
-                ImplSaveOverlapBackground();
             // adjust mpWindowImpl->mbReallyVisible
             bRealVisibilityChanged = !mpWindowImpl->mbReallyVisible;
             ImplSetReallyVisible();
commit 01695131f3283d15e8fb803c7a342d0932d0e182
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sat Jan 30 19:26:07 2016 +0000

    Resolves: tdf#93821 assume mbNoSaveBackground as true everywhere
    
    Change-Id: I126aa5e9b96299eb25c2240d097859b3c0756535

diff --git a/include/vcl/dialog.hxx b/include/vcl/dialog.hxx
index eb4a2fd..1c0b92f 100644
--- a/include/vcl/dialog.hxx
+++ b/include/vcl/dialog.hxx
@@ -41,7 +41,6 @@ private:
     DialogImpl*     mpDialogImpl;
     long            mnMousePositioned;
     bool            mbInExecute;
-    bool            mbOldSaveBack;
     bool            mbInClose;
     bool            mbModalMode;
     InitFlag        mnInitFlag; // used for deferred init
diff --git a/include/vcl/floatwin.hxx b/include/vcl/floatwin.hxx
index 61d724b..20b0688 100644
--- a/include/vcl/floatwin.hxx
+++ b/include/vcl/floatwin.hxx
@@ -106,7 +106,6 @@ private:
     bool            mbPopupModeCanceled;
     bool            mbPopupModeTearOff;
     bool            mbMouseDown;
-    bool            mbOldSaveBackMode;
     bool            mbGrabFocus;    // act as key input window, although focus is not set
     bool            mbInCleanUp;
     Link<FloatingWindow*,void> maPopupModeEndHdl;
diff --git a/include/vcl/syswin.hxx b/include/vcl/syswin.hxx
index 12b0f8f..e95cbf9 100644
--- a/include/vcl/syswin.hxx
+++ b/include/vcl/syswin.hxx
@@ -210,9 +210,6 @@ public:
     // separately from the window title
     void            SetRepresentedURL( const OUString& );
 
-    void            EnableSaveBackground( bool bSave = true );
-    bool            IsSaveBackgroundEnabled() const;
-
     void            ShowTitleButton( TitleButton nButton, bool bVisible = true );
     bool            IsTitleButtonVisible( TitleButton nButton ) const;
 
diff --git a/vcl/inc/svdata.hxx b/vcl/inc/svdata.hxx
index a0663b1..d139c14 100644
--- a/vcl/inc/svdata.hxx
+++ b/vcl/inc/svdata.hxx
@@ -198,7 +198,6 @@ struct ImplSVWinData
     StartAutoScrollFlags    mnAutoScrollFlags;              // auto scroll flags
     bool                    mbNoDeactivate;                 // true: do not execute Deactivate
     bool                    mbNoSaveFocus;                  // true: menus must not save/restore focus
-    bool                    mbNoSaveBackground;             // true: save background is unnecessary or even less performant
 };
 
 typedef std::vector< std::pair< OUString, FieldUnit > > FieldUnitStringList;
diff --git a/vcl/ios/iosinst.cxx b/vcl/ios/iosinst.cxx
index 5f58b7b..6ca639e 100644
--- a/vcl/ios/iosinst.cxx
+++ b/vcl/ios/iosinst.cxx
@@ -176,7 +176,6 @@ SalInstance *CreateSalInstance()
     IosSalInstance* pInstance = new IosSalInstance( new SalYieldMutex() );
     new IosSalData( pInstance );
     pInstance->AcquireYieldMutex(1);
-    ImplGetSVData()->maWinData.mbNoSaveBackground = true;
     return pInstance;
 }
 
diff --git a/vcl/osx/salinst.cxx b/vcl/osx/salinst.cxx
index 2e3fdad..63b8e05 100644
--- a/vcl/osx/salinst.cxx
+++ b/vcl/osx/salinst.cxx
@@ -338,7 +338,6 @@ SalInstance* CreateSalInstance()
     ImplGetSVData()->maNWFData.mbProgressNeedsErase = true;
     ImplGetSVData()->maNWFData.mbCheckBoxNeedsErase = true;
     ImplGetSVData()->maNWFData.mnStatusBarLowerRightOffset = 10;
-    ImplGetSVData()->maWinData.mbNoSaveBackground = true;
 
     return pInst;
 }
diff --git a/vcl/source/app/help.cxx b/vcl/source/app/help.cxx
index a41c666..f48f6c5 100644
--- a/vcl/source/app/help.cxx
+++ b/vcl/source/app/help.cxx
@@ -237,9 +237,6 @@ HelpTextWindow::HelpTextWindow( vcl::Window* pParent, const OUString& rText, sal
     ImplSetMouseTransparent( true );
     mnHelpWinStyle = nHelpWinStyle;
     mnStyle = nStyle;
-//  on windows this will raise the application window, because help windows are system windows now
-//  EnableAlwaysOnTop();
-    EnableSaveBackground();
 
     if( mnStyle & QuickHelpFlags::BiDiRtl )
     {
diff --git a/vcl/source/control/imp_listbox.cxx b/vcl/source/control/imp_listbox.cxx
index 18e1756..65fd57a 100644
--- a/vcl/source/control/imp_listbox.cxx
+++ b/vcl/source/control/imp_listbox.cxx
@@ -2944,8 +2944,6 @@ ImplListBoxFloatingWindow::ImplListBoxFloatingWindow( vcl::Window* pParent ) :
 
     mnPopupModeStartSaveSelection = LISTBOX_ENTRY_NOTFOUND;
 
-    EnableSaveBackground();
-
     vcl::Window * pBorderWindow = ImplGetBorderWindow();
     if( pBorderWindow )
     {
diff --git a/vcl/source/opengl/OpenGLHelper.cxx b/vcl/source/opengl/OpenGLHelper.cxx
index a8a62fc..f98acbe 100644
--- a/vcl/source/opengl/OpenGLHelper.cxx
+++ b/vcl/source/opengl/OpenGLHelper.cxx
@@ -1004,7 +1004,6 @@ bool OpenGLHelper::isVCLOpenGLEnabled()
     {
         if (!getenv("SAL_DISABLE_GL_WATCHDOG"))
             OpenGLWatchdogThread::start();
-        ImplGetSVData()->maWinData.mbNoSaveBackground = true;
     }
 
     return bRet;
diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx
index d06ca87..ce0d6f1 100644
--- a/vcl/source/window/dialog.cxx
+++ b/vcl/source/window/dialog.cxx
@@ -357,7 +357,6 @@ void Dialog::ImplInitDialogData()
     mpWindowImpl->mbDialog  = true;
     mpPrevExecuteDlg        = nullptr;
     mbInExecute             = false;
-    mbOldSaveBack           = false;
     mbInClose               = false;
     mbModalMode             = false;
     mpContentArea.clear();
@@ -855,8 +854,6 @@ bool Dialog::ImplStartExecuteModal()
     }
     mbInExecute = true;
     SetModalInputMode( true );
-    mbOldSaveBack = IsSaveBackgroundEnabled();
-    EnableSaveBackground();
 
     // FIXME: no layouting, workaround some clipping issues
     ImplAdjustNWFSizes();
@@ -962,7 +959,6 @@ void Dialog::EndDialog( long nResult )
         mpPrevExecuteDlg = nullptr;
 
         Hide();
-        EnableSaveBackground( mbOldSaveBack );
         if ( GetParent() )
         {
             NotifyEvent aNEvt( MouseNotifyEvent::ENDEXECUTEDIALOG, this );
diff --git a/vcl/source/window/floatwin.cxx b/vcl/source/window/floatwin.cxx
index 8b075c7..ed997c8 100644
--- a/vcl/source/window/floatwin.cxx
+++ b/vcl/source/window/floatwin.cxx
@@ -170,7 +170,6 @@ FloatingWindow::FloatingWindow(vcl::Window* pParent, const OString& rID, const O
     , mbPopupModeCanceled(false)
     , mbPopupModeTearOff(false)
     , mbMouseDown(false)
-    , mbOldSaveBackMode(false)
     , mbGrabFocus(false)
     , mbInCleanUp(false)
 {
@@ -696,9 +695,6 @@ void FloatingWindow::StartPopupMode( const Rectangle& rRect, FloatWinPopupFlags
     mbPopupModeTearOff      = false;
     mbMouseDown             = false;
 
-    mbOldSaveBackMode       = IsSaveBackgroundEnabled();
-    EnableSaveBackground();
-
     // add FloatingWindow to list of windows that are in popup mode
     ImplSVData* pSVData = ImplGetSVData();
     mpNextFloat = pSVData->maWinData.mpFirstFloat;
@@ -795,7 +791,6 @@ void FloatingWindow::ImplEndPopupMode( FloatWinPopupEndFlags nFlags, VclPtr<vcl:
         if ( xFocusId != nullptr )
             Window::EndSaveFocus( xFocusId, false );
     }
-    EnableSaveBackground( mbOldSaveBackMode );
 
     mbPopupModeCanceled = bool(nFlags & FloatWinPopupEndFlags::Cancel);
 
diff --git a/vcl/source/window/menufloatingwindow.cxx b/vcl/source/window/menufloatingwindow.cxx
index 60c52b9..2620b0d 100644
--- a/vcl/source/window/menufloatingwindow.cxx
+++ b/vcl/source/window/menufloatingwindow.cxx
@@ -45,7 +45,6 @@ MenuFloatingWindow::MenuFloatingWindow( Menu* pMen, vcl::Window* pParent, WinBit
     bIgnoreFirstMove    = true;
     bKeyInput           = false;
 
-    EnableSaveBackground();
     ApplySettings(*this);
 
     SetPopupModeEndHdl( LINK( this, MenuFloatingWindow, PopupEnd ) );
diff --git a/vcl/source/window/syswin.cxx b/vcl/source/window/syswin.cxx
index 5ff9f1d..19ec2f9 100644
--- a/vcl/source/window/syswin.cxx
+++ b/vcl/source/window/syswin.cxx
@@ -291,33 +291,6 @@ void SystemWindow::SetIcon( sal_uInt16 nIcon )
     }
 }
 
-void SystemWindow::EnableSaveBackground(bool bSave)
-{
-    if( ImplGetSVData()->maWinData.mbNoSaveBackground )
-        bSave = false;
-
-    vcl::Window* pWindow = this;
-    while (pWindow->mpWindowImpl->mpBorderWindow)
-        pWindow = pWindow->mpWindowImpl->mpBorderWindow;
-    if (pWindow->mpWindowImpl->mbOverlapWin && !pWindow->mpWindowImpl->mbFrame)
-    {
-        pWindow->mpWindowImpl->mpOverlapData->mbSaveBack = bSave;
-        if (!bSave)
-            pWindow->ImplDeleteOverlapBackground();
-    }
-}
-
-bool SystemWindow::IsSaveBackgroundEnabled() const
-{
-    const vcl::Window* pWindow = this;
-    while ( pWindow->mpWindowImpl->mpBorderWindow )
-        pWindow = pWindow->mpWindowImpl->mpBorderWindow;
-    if ( pWindow->mpWindowImpl->mpOverlapData )
-        return pWindow->mpWindowImpl->mpOverlapData->mbSaveBack;
-    else
-        return false;
-}
-
 void SystemWindow::ShowTitleButton( TitleButton nButton, bool bVisible )
 {
     if ( nButton == TitleButton::Docking )


More information about the Libreoffice-commits mailing list