[Libreoffice-commits] core.git: svx/source

Caolán McNamara caolanm at redhat.com
Thu Nov 13 06:38:03 PST 2014


 svx/source/table/svdotable.cxx |    9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

New commits:
commit 22ef69b25fa60f4543dc72cb7a8d2f88b789ce43
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Nov 13 14:31:09 2014 +0000

    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

diff --git a/svx/source/table/svdotable.cxx b/svx/source/table/svdotable.cxx
index c775c4b..9617904 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() )


More information about the Libreoffice-commits mailing list