void AddLineBreakAfter(EditableRun afterTextRun)
{
if (afterTextRun == null)
{
this.EndWithLineBreak = true; EditableTextLine newline = editableFlowLayer.InsertNewLine(currentLineNumber + 1);
if (editableFlowLayer.LineCount - 1 != newline.LineNumber)
{
newline.EndWithLineBreak = true;
}
return;
}
if (afterTextRun.NextTextRun == null)
{
this.EndWithLineBreak = true; EditableTextLine newline = editableFlowLayer.InsertNewLine(currentLineNumber + 1);
if (editableFlowLayer.LineCount - 1 != newline.LineNumber)
{
newline.EndWithLineBreak = true;
}
}
else
{
List<EditableRun> tempTextRuns = new List<EditableRun>(this.Count);
if (afterTextRun != null)
{
foreach (EditableRun t in GetVisualElementForward(afterTextRun.NextTextRun))
{
tempTextRuns.Add(t);
}
}
this.EndWithLineBreak = true; this.LocalSuspendLineReArrange(); EditableTextLine newTextline = editableFlowLayer.InsertNewLine(currentLineNumber + 1);
int j = tempTextRuns.Count;
newTextline.LocalSuspendLineReArrange(); int cx = 0;
for (int i = 0; i < j; ++i)
{
EditableRun t = tempTextRuns[i];
this.Remove(t); newTextline.AddLast(t); RenderElement.DirectSetLocation(t, cx, 0);
cx += t.Width;
}
newTextline.LocalResumeLineReArrange(); this.LocalResumeLineReArrange();
}
}
void AddLineBreakBefore(EditableRun beforeTextRun)