690b8f1...
by
Michael Stahl <email address hidden>
sw_redlinehide_4a: fix infinite loop in SwAttrIter::Seek()
It's actually possible for Seek to be invoked with a position that is
neither 0 nor >= the current position:
lcl_CalcOptRepaint(), called from SwTextFormatter::FormatLine(), will
move backwards via some funny heuristic and call GetCharRect(), which
then seeks.
17fb419...
by
Michael Stahl <email address hidden>
sw_redlinehide_4a: fix asserts caused by invalid index in SwUpdateAttr
There is no reason for SwpHints::TryInsertHint() to add 1 to the end
index of an empty hint, which results in an invalid index when the end
of the hint is at the end of the node.
The only user of the indexes in SwUpdateAttr is
SwTextFrame::SwClientNotify() and it already extends a 0 range to 1.
7c6ce9a...
by
Michael Stahl <email address hidden>
sw_redlinehide_4a: SwEditShell::AutoCorrect() etc.
The hope is that the AutoCorrect never deletes nodes, hence never
deletes SwTextFrames, hence we can pass in the SwTextFrame::GetText()
result and it will be updated via the SwTextFrame::SwClientNotify()
on editing operations.
dbfe996...
by
Michael Stahl <email address hidden>
sw_redlinehide_4a: SwAutoCorrDoc iterates frames, not nodes
Adapt this in a similar way, with a DeleteSel() that skips over
delete redlines.
The Replace functions fortunately only have callers that replace 1
character currently, but there is another ReplaceRange() call that
needs a litte more complicated handling.