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 723728cd35
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@cib.de>
This commit is contained in:
parent
969ebe1c58
commit
6c7245e789
1 changed files with 2 additions and 1 deletions
|
@ -965,7 +965,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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue