[Libreoffice-commits] core.git: Branch 'libreoffice-5-3' - sc/source

Eike Rathke erack at redhat.com
Fri Dec 16 14:20:49 UTC 2016


 sc/source/core/data/drwlayer.cxx |    4 ++++
 1 file changed, 4 insertions(+)

New commits:
commit 3d4aec8c32bf7b95657c40485f093c8e4a36b77c
Author: Eike Rathke <erack at redhat.com>
Date:   Fri Dec 16 00:18:52 2016 +0100

    Resolves: tdf#103543 disable mass broadcasts from drawing objects' changes
    
    Specifically the a11y listeners are nasty bottle necks. A11y will get
    updated on paint/view. We're touching all objects on that drawing page
    to reposition so interdependencies that need to be broadcasted should
    not happen.
    
    Change-Id: Ic80446e22422a3097281ba20eecf0a078ac6a7cb
    (cherry picked from commit 6a334757082be4915e7e731ce4c1b0bd4641050d)
    Reviewed-on: https://gerrit.libreoffice.org/32064
    Reviewed-by: Eike Rathke <erack at redhat.com>
    Tested-by: Jenkins <ci at libreoffice.org>

diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx
index f2e93dd..d7a51a2 100644
--- a/sc/source/core/data/drwlayer.cxx
+++ b/sc/source/core/data/drwlayer.cxx
@@ -587,6 +587,9 @@ void ScDrawLayer::SetPageSize( sal_uInt16 nPageNo, const Size& rSize, bool bUpda
 
         bool bNegativePage = pDoc && pDoc->IsNegativePage( static_cast<SCTAB>(nPageNo) );
 
+        // Disable mass broadcasts from drawing objects' position changes.
+        bool bWasLocked = isLocked();
+        setLock(true);
         const size_t nCount = pPage->GetObjCount();
         for ( size_t i = 0; i < nCount; ++i )
         {
@@ -595,6 +598,7 @@ void ScDrawLayer::SetPageSize( sal_uInt16 nPageNo, const Size& rSize, bool bUpda
             if( pData )
                 RecalcPos( pObj, *pData, bNegativePage, bUpdateNoteCaptionPos );
         }
+        setLock(bWasLocked);
     }
 }
 


More information about the Libreoffice-commits mailing list