diff options
author | Eike Rathke <erack@redhat.com> | 2016-12-16 00:18:52 +0100 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2016-12-16 14:20:00 +0000 |
commit | 3d4aec8c32bf7b95657c40485f093c8e4a36b77c (patch) | |
tree | 1aea7fcf2125d22593f583614c1eed90ad24d3a2 | |
parent | c869dac7c71395fd86a930c556893b6694a36e8a (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
(cherry picked from commit 6a334757082be4915e7e731ce4c1b0bd4641050d)
Reviewed-on: https://gerrit.libreoffice.org/32064
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Jenkins <ci@libreoffice.org>
-rw-r--r-- | sc/source/core/data/drwlayer.cxx | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx index f2e93dddb999..d7a51a275edf 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); } } |