public static void AppendSecondLineToFirst(Block lowerSeparator) { if (lowerSeparator == null || lowerSeparator.Parent == null || lowerSeparator.Parent.Prev == null || lowerSeparator.Prev != null) { return; } ContainerBlock oldParent = lowerSeparator.Parent; ContainerBlock newParent = oldParent.Prev as ContainerBlock; Block newFocus = null; if (newParent == null) { return; } else { newFocus = newParent.FindLastFocusableBlock(); } ActionBuilder a = new ActionBuilder(lowerSeparator.Root); if (lowerSeparator.Next != null) { foreach (Block child in oldParent.Children) { if (child != lowerSeparator) { a.MoveBlock(newParent, child); } } } a.DeleteBlock(oldParent); a.RunWithoutRedraw(); if (newFocus != null) { newFocus.SetFocus(true); } }
public static void SetCursorToTheEndOfLine(Block currentBlock) { if (currentBlock == null) { return; } ContainerBlock parent = currentBlock.Parent; if (parent == null) { return; } Block last = parent.FindLastFocusableBlock(); if (last == null) { return; } last.SetCursorToTheEnd(true); }