fdo#70201: sw: eliminate no-extent RSID-only AUTOFMT hints
These are already filtered out in SwpHints::TryInsertHint(), but they
can be produced by a SwTxtNode::Update() following some deletion like in
SwTxtNode::ReplaceText() (or maybe CutImpl() and RstAttr() too?).
So in order to prevent SwHistorySetTxt being created for these,
filter them out in SwpHints::MergePortions(), which has the advantage
that it's one location to change; probably filtering in Update() and
RstAttr() both would work too.
(regression from 6db39dbd73
)
Change-Id: I597a9ab290dcc3fb1b624dd2dca241c462acf256
This commit is contained in:
@@ -2527,6 +2527,15 @@ bool SwpHints::MergePortions( SwTxtNode& rNode )
|
||||
pHt->GetAutoFmt().GetStyleHandle());
|
||||
if ((pSet->Count() == 1) && pSet->GetItem(RES_CHRATR_RSID, false))
|
||||
{
|
||||
// fdo#70201: eliminate no-extent RSID-only AUTOFMT
|
||||
// could be produced by ReplaceText or (maybe?) RstAttr
|
||||
if (*pHt->GetStart() == *pHt->GetEnd())
|
||||
{
|
||||
SwpHintsArray::DeleteAtPos(i); // kill it without History!
|
||||
SwTxtAttr::Destroy(pHt, rNode.GetDoc()->GetAttrPool());
|
||||
--i;
|
||||
continue;
|
||||
}
|
||||
// fdo#52028: this one has _only_ RSID => ignore it completely
|
||||
if (!pHt->IsFormatIgnoreStart() || !pHt->IsFormatIgnoreEnd())
|
||||
{
|
||||
|
Reference in New Issue
Block a user