summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2014-11-13 14:31:09 +0000
committerCaolán McNamara <caolanm@redhat.com>2014-11-13 14:37:15 +0000
commit22ef69b25fa60f4543dc72cb7a8d2f88b789ce43 (patch)
treec8443e53a533c0bab2633e5a0a6b7911393f1ef0 /svx
parent779b57b8244ee7552a125b8cef9b51ebad34921a (diff)
impress tables are not interactively growing
the optimization here stops tables growing as their text contents change in editing mode So, just recalculate if the table could grow and its being interactively edited, which leaves the original (dubious ?) load-time optimization in place Change-Id: I894acf47d34ec8b68aaf9076b5a0cb7e29c38a17
Diffstat (limited to 'svx')
-rw-r--r--svx/source/table/svdotable.cxx9
1 files changed, 4 insertions, 5 deletions
diff --git a/svx/source/table/svdotable.cxx b/svx/source/table/svdotable.cxx
index c775c4bbb692..961790459695 100644
--- a/svx/source/table/svdotable.cxx
+++ b/svx/source/table/svdotable.cxx
@@ -686,16 +686,17 @@ sal_Int32 SdrTableObjImpl::getRowCount() const
return mxTable.is() ? mxTable->getRowCount() : 0;
}
-
-
void SdrTableObjImpl::LayoutTable( Rectangle& rArea, bool bFitWidth, bool bFitHeight )
{
if( mpLayouter && mpTableObj->GetModel() )
{
// Optimization: SdrTableObj::SetChanged() can call this very often, repeatedly
// with the same settings, noticeably increasing load time. Skip if already done.
+ bool bInteractiveMightGrowBecauseTextChanged =
+ mpTableObj->IsRealyEdited() && (mpTableObj->IsAutoGrowHeight() || mpTableObj->IsAutoGrowHeight());
WritingMode writingMode = mpTableObj->GetWritingMode();
- if( lastLayoutTable != this || lastLayoutInputRectangle != rArea
+ if( bInteractiveMightGrowBecauseTextChanged
+ || lastLayoutTable != this || lastLayoutInputRectangle != rArea
|| lastLayoutFitWidth != bFitWidth || lastLayoutFitHeight != bFitHeight
|| lastLayoutMode != writingMode
|| lastRowCount != getRowCount()
@@ -719,8 +720,6 @@ void SdrTableObjImpl::LayoutTable( Rectangle& rArea, bool bFitWidth, bool bFitHe
}
}
-
-
void SdrTableObjImpl::UpdateCells( Rectangle& rArea )
{
if( mpLayouter && mxTable.is() )