[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-4.2' - sc/source

Kohei Yoshida kohei.yoshida at collabora.com
Sat Oct 11 15:58:12 PDT 2014


 sc/source/ui/undo/undoblk3.cxx |   23 +++++++++--------------
 1 file changed, 9 insertions(+), 14 deletions(-)

New commits:
commit e392a590399af9c5b87cfbba419d77784c28c250
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Sat Oct 11 14:18:10 2014 -0400

    fdo#80846: Broadcast changes before EndUndo().
    
    EndUndo() calls PostDataChanged(), which renders the recalculated formula
    cells.  Not broadcasting before EndUndo causes some dependent formula
    cells to not get recalculated.
    
    This one unfortunately is not currently unit-testable as this behavior
    depends on the presence of ScTabViewShell....
    
    Change-Id: I86288608b7f2627cda7c74be27a18029832775ef
    (cherry picked from commit 424bfaa773e58d6b609ac7f64907db4b542d1315)

diff --git a/sc/source/ui/undo/undoblk3.cxx b/sc/source/ui/undo/undoblk3.cxx
index 6c258e0..35b80ba 100644
--- a/sc/source/ui/undo/undoblk3.cxx
+++ b/sc/source/ui/undo/undoblk3.cxx
@@ -169,12 +169,20 @@ void ScUndoDeleteContents::DoChange( const sal_Bool bUndo )
         SetChangeTrack();
     }
 
+    if (nFlags & IDF_CONTENTS)
+    {
+        // Broadcast only when the content changes. fdo#74687
+        if (mpDataSpans)
+            BroadcastChanges(*mpDataSpans);
+        else
+            BroadcastChanges(aRange);
+    }
+
     ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
     if ( !( (pViewShell) && pViewShell->AdjustRowHeight(
                                 aRange.aStart.Row(), aRange.aEnd.Row() ) ) )
 /*A*/   pDocShell->PostPaint( aRange, PAINT_GRID | PAINT_EXTRAS, nExtFlags );
 
-    pDocShell->PostDataChanged();
     if (pViewShell)
         pViewShell->CellContentChanged();
 
@@ -187,15 +195,6 @@ void ScUndoDeleteContents::Undo()
     DoChange( sal_True );
     EndUndo();
 
-    if (nFlags & IDF_CONTENTS)
-    {
-        // Broadcast only when the content changes. fdo#74687
-        if (mpDataSpans)
-            BroadcastChanges(*mpDataSpans);
-        else
-            BroadcastChanges(aRange);
-    }
-
     HelperNotifyChanges::NotifyIfChangesListeners(*pDocShell, aRange);
 }
 
@@ -205,10 +204,6 @@ void ScUndoDeleteContents::Redo()
     DoChange( false );
     EndRedo();
 
-    if (nFlags & IDF_CONTENTS)
-        // Broadcast only when the content changes. fdo#74687
-        BroadcastChanges(aRange);
-
     HelperNotifyChanges::NotifyIfChangesListeners(*pDocShell, aRange);
 }
 


More information about the Libreoffice-commits mailing list