summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2016-12-16 00:18:52 +0100
committerEike Rathke <erack@redhat.com>2016-12-16 02:37:59 +0100
commit6a334757082be4915e7e731ce4c1b0bd4641050d (patch)
tree3358dae5af3f6b293c56b2e875232d4bdcf4dc57
parentb954f1427a9549d89d8b0800259af9374b4767df (diff)
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
-rw-r--r--sc/source/core/data/drwlayer.cxx4
1 files changed, 4 insertions, 0 deletions
diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx
index 1deb958039de..3689aab7e9df 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);
}
}