[Libreoffice-commits] core.git: Branch 'distro/lhm/libreoffice-6-1+backports' - sw/source

Michael Stahl (via logerrit) logerrit at kemper.freedesktop.org
Thu Apr 9 14:58:55 UTC 2020


 sw/source/core/undo/undel.cxx |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

New commits:
commit f211149066ac9224c463f5367dace61a19ca99a1
Author:     Michael Stahl <Michael.Stahl at cib.de>
AuthorDate: Tue Apr 7 18:33:34 2020 +0200
Commit:     Michael Stahl <michael.stahl at cib.de>
CommitDate: Thu Apr 9 16:58:25 2020 +0200

    tdf#131684 sw_redlinehide: fix SwUndoDelete for entire doc in section
    
    The problem is that in SwUndoDelete::UndoImpl(), at the start there is
    only one content node with a frame in the layout, and there is a special
    case with m_nReplaceDummy being set so this SwTextFrame gets deleted by
    the MoveNodes() call in line 969 that moves it into the newly inserted
    section.
    
    As a result of that, MakeFrames() won't do anything because it can't
    find an existing frame in the same section.
    
    In this case, MoveNodes() should leave the frame alone, as it is beyond
    the end of the deletion and excluded from MakeFrames() - if it wasn't
    merged before then it doesn't need action, if it was merged before (in a
    different document maybe) the RecreateStartTextFrames() ought to fix it.
    
    (regression from 723728cd358693b8f4bc9d913541aa4479f2bd48
     which disabled immediate creation of frames in Copy_())
    
    Change-Id: Iabe2fb1810b0df898b1f57b3d850c3503c79c5d0
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91842
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.stahl at cib.de>
    (cherry picked from commit 6c7245e789f973cf6dad03f7008ab3f9d12d350c)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91886
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
    (cherry picked from commit 5e2fc4864a5ed4c8361863ba7fa8e83d1c768638)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91904
    Tested-by: Michael Stahl <michael.stahl at cib.de>

diff --git a/sw/source/core/undo/undel.cxx b/sw/source/core/undo/undel.cxx
index e6d9a4e2ba03..e75fad6c1970 100644
--- a/sw/source/core/undo/undel.cxx
+++ b/sw/source/core/undo/undel.cxx
@@ -974,7 +974,8 @@ void SwUndoDelete::UndoImpl(::sw::UndoRedoContext & rContext)
                 SwNodeIndex aMvIdx(rDoc.GetNodes(), nMoveIndex);
                 SwNodeRange aRg( aPos.nNode, 0, aPos.nNode, 1 );
                 pMovedNode = &aPos.nNode.GetNode();
-                rDoc.GetNodes().MoveNodes(aRg, rDoc.GetNodes(), aMvIdx);
+                // tdf#131684 without deleting frames
+                rDoc.GetNodes().MoveNodes(aRg, rDoc.GetNodes(), aMvIdx, false);
                 rDoc.GetNodes().Delete( aMvIdx);
             }
         }


More information about the Libreoffice-commits mailing list