Kaydet (Commit) 39c5d1b3 authored tarafından Michael Stahl's avatar Michael Stahl

sw_redlinehide_3: have SwTextFrame ensure that list node is ...

... always the same as pParaPropsNode.

Change-Id: I1fb225d147ec3558615ad16ec49f873db7f1628f
üst 0a846a81
...@@ -934,14 +934,14 @@ struct MergedPara ...@@ -934,14 +934,14 @@ struct MergedPara
/// const_casts it and modifies it (also, Update will modify it) /// const_casts it and modifies it (also, Update will modify it)
OUString mergedText; OUString mergedText;
/// most paragraph properties are taken from the first non-empty node /// most paragraph properties are taken from the first non-empty node
SwTextNode const* pParaPropsNode; SwTextNode * pParaPropsNode;
/// except break attributes, those are taken from the first node /// except break attributes, those are taken from the first node
SwTextNode *const pFirstNode; SwTextNode *const pFirstNode;
/// mainly for sanity checks /// mainly for sanity checks
SwTextNode const* pLastNode; SwTextNode const* pLastNode;
MergedPara(SwTextFrame & rFrame, std::vector<Extent>&& rExtents, MergedPara(SwTextFrame & rFrame, std::vector<Extent>&& rExtents,
OUString const& rText, OUString const& rText,
SwTextNode const*const pProps, SwTextNode *const pFirst, SwTextNode *const pProps, SwTextNode *const pFirst,
SwTextNode const*const pLast) SwTextNode const*const pLast)
: listener(rFrame), extents(std::move(rExtents)), mergedText(rText) : listener(rFrame), extents(std::move(rExtents)), mergedText(rText)
, pParaPropsNode(pProps), pFirstNode(pFirst), pLastNode(pLast) , pParaPropsNode(pProps), pFirstNode(pFirst), pLastNode(pLast)
......
...@@ -827,7 +827,9 @@ static TextFrameIndex UpdateMergedParaForInsert(MergedPara & rMerged, ...@@ -827,7 +827,9 @@ static TextFrameIndex UpdateMergedParaForInsert(MergedPara & rMerged,
nInserted = nLen; nInserted = nLen;
if (rNode.GetIndex() < rMerged.pParaPropsNode->GetIndex()) if (rNode.GetIndex() < rMerged.pParaPropsNode->GetIndex())
{ // text inserted before current para-props node { // text inserted before current para-props node
rMerged.pParaPropsNode = &rNode; rMerged.pParaPropsNode->RemoveFromListRLHidden();
rMerged.pParaPropsNode = &const_cast<SwTextNode&>(rNode);
rMerged.pParaPropsNode->AddToListRLHidden();
} }
} }
rMerged.mergedText = text.makeStringAndClear(); rMerged.mergedText = text.makeStringAndClear();
...@@ -953,9 +955,11 @@ TextFrameIndex UpdateMergedParaForDelete(MergedPara & rMerged, ...@@ -953,9 +955,11 @@ TextFrameIndex UpdateMergedParaForDelete(MergedPara & rMerged,
{ // all visible text from node was erased { // all visible text from node was erased
if (rMerged.pParaPropsNode == &rNode) if (rMerged.pParaPropsNode == &rNode)
{ {
rMerged.pParaPropsNode->RemoveFromListRLHidden();
rMerged.pParaPropsNode = rMerged.extents.empty() rMerged.pParaPropsNode = rMerged.extents.empty()
? rMerged.pFirstNode ? rMerged.pFirstNode
: rMerged.extents.front().pNode; : rMerged.extents.front().pNode;
rMerged.pParaPropsNode->AddToListRLHidden();
} }
// NOPE must listen on all non-hidden nodes; particularly on pLastNode rMerged.listener.EndListening(&const_cast<SwTextNode&>(rNode)); // NOPE must listen on all non-hidden nodes; particularly on pLastNode rMerged.listener.EndListening(&const_cast<SwTextNode&>(rNode));
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment