public void LocalResumeLineReArrange() { _lineFlags &= ~LOCAL_SUSPEND_LINE_REARRANGE; LinkedListNode <EditableRun> curNode = this.First; int cx = 0; while (curNode != null) { EditableRun ve = curNode.Value; EditableRun.DirectSetLocation(ve, cx, 0); cx += ve.Width; curNode = curNode.Next; } }
void JoinWithNextLine() { if (!IsLastLine) { EditableTextLine lowerLine = EditableFlowLayer.GetTextLine(_currentLineNumber + 1); this.LocalSuspendLineReArrange(); int cx = 0; EditableRun lastTextRun = (EditableRun)this.LastRun; if (lastTextRun != null) { cx = lastTextRun.Right; } foreach (EditableRun r in lowerLine._runs) { this.AddLast(r); EditableRun.DirectSetLocation(r, cx, 0); cx += r.Width; } this.LocalResumeLineReArrange(); this.EndWithLineBreak = lowerLine.EndWithLineBreak; EditableFlowLayer.Remove(lowerLine._currentLineNumber); } }