diff options
author | Michael Stahl <Michael.Stahl@cib.de> | 2019-08-09 16:03:44 +0200 |
---|---|---|
committer | Michael Stahl <Michael.Stahl@cib.de> | 2019-08-09 18:25:23 +0200 |
commit | f6a7dee56c984f36261c75a1056cc3a5bf43b2f1 (patch) | |
tree | c6f2a054a350f988b7d9b4cc0eb708615b208e34 /vcl/headless | |
parent | e6c036915b75cd5c81323e337a8604701b869052 (diff) |
tdf#126627 sw_redlinehide: fix corner case in SwUndoDelete::UndoImpl()
The assumption that the merge by the moved nodes would be sufficient to
handle the end node's frames is wrong: the MakeFrames() uses
FrameMode::New, so the frames on the end node are not deleted, even if a
previous node is merged with the end node, so the end node has 2 frames
in the same layout, which will cause all sorts of problems.
Ensure that the ::MakeFrames() that is called from SwUndoDelete will
*once* use FrameMode::Existing, which will delete the existing frames on
the end node *iff* it is merged. Subsequent SwTextNode::MakeFrames()
calls on the nodes must use FrameMode::New of course, to prevent
deleting the newly created frames immediately.
Hopefully the SwUndoDelete is the only caller of MakeFrames() that will
run into this corner case, as the others typically operate on a
nodes-array section...
(regression from 723728cd358693b8f4bc9d913541aa4479f2bd48)
Change-Id: I829c1e7a92434f93d56e3c88a4ba4a55bab818d4
Reviewed-on: https://gerrit.libreoffice.org/77211
Tested-by: Jenkins
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
Diffstat (limited to 'vcl/headless')
0 files changed, 0 insertions, 0 deletions