MS\Internal\Documents\TextBoxView.cs (27)
588if (offset > 0 && position.LogicalDirection == LogicalDirection.Backward)
619if (position.LogicalDirection == LogicalDirection.Backward && position.Offset > 0)
661lastLineIndex = Math.Min(lastLineIndex, GetLineIndexFromOffset(endOffset, LogicalDirection.Backward));
700ITextPointer endOfLinePosition = _host.TextContainer.CreatePointerAtOffset(_lineMetrics[lineIndex].EndOffset, LogicalDirection.Backward);
701if (TextPointerBase.IsNextToPlainLineBreak(endOfLinePosition, LogicalDirection.Backward))
784else if (position.LogicalDirection == LogicalDirection.Backward)
815if (position.Offset == 0 && direction == LogicalDirection.Backward)
821return position.GetFrozenPointer(LogicalDirection.Backward);
852logicalDirection = LogicalDirection.Backward;
860direction == LogicalDirection.Backward)
870logicalDirection = LogicalDirection.Backward;
875logicalDirection = (nextCharacterHit.TrailingLength > 0) ? LogicalDirection.Backward : LogicalDirection.Forward;
897int lineIndex = GetLineIndexFromPosition(position, LogicalDirection.Backward);
918logicalDirection = LogicalDirection.Backward;
923logicalDirection = (backspaceCharacterHit.TrailingLength > 0) ? LogicalDirection.Backward : LogicalDirection.Forward;
1264ITextPointer start = _host.TextContainer.CreatePointerAtOffset(_lineMetrics[0].Offset, LogicalDirection.Backward);
1667if (offset > 0 && direction == LogicalDirection.Backward)
1719logicalDirection = (charIndex.TrailingLength > 0) ? LogicalDirection.Backward : LogicalDirection.Forward;
1896int lastLineIndex = GetLineIndexFromOffset(endOffset, LogicalDirection.Backward);
2016ITextPointer position = _host.TextContainer.CreatePointerAtOffset(unclippedStartOffset, LogicalDirection.Backward);
2017if (TextPointerBase.IsNextToPlainLineBreak(position, LogicalDirection.Backward))
2061ITextPointer endOfLinePosition = _host.TextContainer.CreatePointerAtOffset(endOffset, LogicalDirection.Backward);
2063if (TextPointerBase.IsNextToPlainLineBreak(endOfLinePosition, LogicalDirection.Backward))
2112ITextPointer position = _host.TextContainer.CreatePointerAtOffset(unclippedStartOffset, LogicalDirection.Backward);
2113if (TextPointerBase.IsNextToPlainLineBreak(position, LogicalDirection.Backward))
2140ITextPointer endOfLinePosition = _host.TextContainer.CreatePointerAtOffset(endOffset, LogicalDirection.Backward);
2142if (TextPointerBase.IsNextToPlainLineBreak(endOfLinePosition, LogicalDirection.Backward))
System\Windows\Documents\FixedFindEngine.cs (6)
147end = new DocumentSequenceTextPointer(childBlock, new FixedTextPointer(false, LogicalDirection.Backward, fixedDoc.FixedContainer.FixedTextBuilder.GetPageEndFlowPosition(translatedPageNumber)));
153end = new DocumentSequenceTextPointer(childBlock, new FixedTextPointer(false, LogicalDirection.Backward, fixedDoc.FixedContainer.FixedTextBuilder.GetPageEndFlowPosition(translatedPageNumber)));
162end = new FixedTextPointer(false, LogicalDirection.Backward, textBuilder.GetPageEndFlowPosition(pageNumber));
168end = new FixedTextPointer(false, LogicalDirection.Backward, textBuilder.GetPageEndFlowPosition(pageNumber));
320new FixedTextPointer(false, LogicalDirection.Backward, pageEndFlowPosition));
326firstSearchPageEnd = new FixedTextPointer(false, LogicalDirection.Backward, startAsFTP.FixedTextContainer.FixedTextBuilder.GetPageEndFlowPosition(pageNumber));
System\Windows\Documents\Speller.cs (17)
189ExpandToWordBreakAndContext(error.Start, LogicalDirection.Backward, language, out ITextPointer contentStart, out ITextPointer contextStart);
703wordBreakLeft = SearchForWordBreaks(caretPosition, LogicalDirection.Backward, language, 1, false /* stopOnError */);
719FindPositionInSegmentList(textMap, LogicalDirection.Backward, segments, out leftBreakOffset, out rightBreakOffset);
789ExpandToWordBreakAndContext(start, LogicalDirection.Backward, language, out contentStart, out contextStart);
1117inwardDirection = direction == LogicalDirection.Forward ? LogicalDirection.Backward : LogicalDirection.Forward;
1123if (direction == LogicalDirection.Backward)
1158if (direction == LogicalDirection.Backward)
1175if (direction == LogicalDirection.Backward)
1202if (direction == LogicalDirection.Backward)
1290if (direction == LogicalDirection.Backward)
1337searchPosition.MoveByOffset(direction == LogicalDirection.Backward ? -ContextBlockSize : +ContextBlockSize);
1342if (direction == LogicalDirection.Backward && closestErrorPosition.CompareTo(searchPosition) > 0 ||
1353if (direction == LogicalDirection.Backward && closestLanguageTransition.CompareTo(searchPosition) > 0 ||
1360if (direction == LogicalDirection.Backward)
1388(direction == LogicalDirection.Backward && navigator.CompareTo(haltPosition) > 0))
1398(direction == LogicalDirection.Backward && navigator.CompareTo(haltPosition) < 0))
1654_basePosition = contextStart.GetFrozenPointer(LogicalDirection.Backward);
System\Windows\Documents\TextContainer.cs (11)
517edge = node.GetEdgeFromOffset(nodeOffset, LogicalDirection.Backward);
629edge = (direction == LogicalDirection.Backward) ? ElementEdge.AfterStart : ElementEdge.BeforeEnd;
640edge = (direction == LogicalDirection.Backward) ? ElementEdge.BeforeStart : ElementEdge.AfterEnd;
651edge = node.GetEdgeFromOffset(nodeOffset, LogicalDirection.Backward);
857originalPosition = this.HasListeners ? new TextPointer(position, LogicalDirection.Backward) : null;
869direction = LogicalDirection.Backward;
882if ((direction == LogicalDirection.Backward && textNode.AfterEndReferenceCount) ||
1585if (!_rootNode.CaretUnitBoundaryCache && position.LogicalDirection == LogicalDirection.Backward)
1628startPosition = new TextPointer(this, _rootNode, ElementEdge.AfterStart, LogicalDirection.Backward);
2763startPosition = new TextPointer(this, elementNode, ElementEdge.BeforeStart, LogicalDirection.Backward);
2768endPosition = new TextPointer(this, elementNode, ElementEdge.AfterEnd, LogicalDirection.Backward);
System\windows\Documents\TextEditorSelection.cs (35)
114ITextPointer lineEnd = position.CreatePointer(LogicalDirection.Backward);
187LogicalDirection movementDirection = IsFlowDirectionRightToLeftThenTopToBottom(This) ? LogicalDirection.Backward : LogicalDirection.Forward;
203LogicalDirection movementDirection = IsFlowDirectionRightToLeftThenTopToBottom(This) ? LogicalDirection.Forward : LogicalDirection.Backward;
220LogicalDirection movementDirection = IsFlowDirectionRightToLeftThenTopToBottom(This) ? LogicalDirection.Backward : LogicalDirection.Forward;
236LogicalDirection movementDirection = IsFlowDirectionRightToLeftThenTopToBottom(This) ? LogicalDirection.Forward : LogicalDirection.Backward;
402ITextPointer previousPosition = lineStartPosition.GetNextInsertionPosition(LogicalDirection.Backward);
467This.Selection.SetCaretToPosition(paragraphRange.Start, LogicalDirection.Backward, /*allowStopAtLineEnd:*/false, /*allowStopNearSpace:*/false);
472This.Selection.SetCaretToPosition(paragraphRange.End, LogicalDirection.Backward, /*allowStopAtLineEnd:*/false, /*allowStopNearSpace:*/false);
516This.Selection.SetCaretToPosition(paragraphRange.Start, LogicalDirection.Backward, /*allowStopAtLineEnd:*/false, /*allowStopNearSpace:*/false);
521if (movingPointer.MoveToNextInsertionPosition(LogicalDirection.Backward))
525This.Selection.SetCaretToPosition(paragraphRange.Start, LogicalDirection.Backward, /*allowStopAtLineEnd:*/false, /*allowStopNearSpace:*/false);
851LogicalDirection orientation = TextPointerBase.IsNextToPlainLineBreak(lineRange.End, LogicalDirection.Backward) ? LogicalDirection.Forward : LogicalDirection.Backward;
914This.Selection.SetCaretToPosition(This.TextContainer.End, LogicalDirection.Backward, /*allowStopAtLineEnd:*/false, /*allowStopNearSpace:*/false);
945LogicalDirection movementDirection = IsFlowDirectionRightToLeftThenTopToBottom(This) ? LogicalDirection.Backward : LogicalDirection.Forward;
961LogicalDirection movementDirection = IsFlowDirectionRightToLeftThenTopToBottom(This) ? LogicalDirection.Forward : LogicalDirection.Backward;
977LogicalDirection movementDirection = IsFlowDirectionRightToLeftThenTopToBottom(This) ? LogicalDirection.Backward : LogicalDirection.Forward;
993LogicalDirection movementDirection = IsFlowDirectionRightToLeftThenTopToBottom(This) ? LogicalDirection.Forward : LogicalDirection.Backward;
1141newMovingPosition = newMovingPosition.GetFrozenPointer(LogicalDirection.Backward);
1183if (This.Selection.ExtendToNextTableRow(LogicalDirection.Backward))
1259ITextPointer previousPosition = lineStartPosition.GetNextInsertionPosition(LogicalDirection.Backward);
1368if (movingPointer.MoveToNextInsertionPosition(LogicalDirection.Backward))
1669TextPointerBase.IsNextToParagraphBreak(This.Selection.AnchorPosition, LogicalDirection.Backward))
1687destination = destination.GetFrozenPointer(LogicalDirection.Backward);
2066LogicalDirection contentDirection = direction == LogicalDirection.Forward ? LogicalDirection.Backward : LogicalDirection.Forward;
2120textEditor.Selection.SetCaretToPosition(textEditor.Selection.End, LogicalDirection.Backward, /*allowStopAtLineEnd:*/false, /*allowStopNearSpace:*/false);
2129textEditor.Selection.SetCaretToPosition(wordBoundary, LogicalDirection.Backward, /*allowStopAtLineEnd:*/false, /*allowStopNearSpace:*/false);
2147TextPointerBase.MoveToNextWordBoundary(wordBoundary, LogicalDirection.Backward);
2193wordBoundary.SetLogicalDirection(direction == LogicalDirection.Forward ? LogicalDirection.Backward : LogicalDirection.Forward);
2305movingPosition.LogicalDirection == LogicalDirection.Backward &&
2307TextPointerBase.IsNextToAnyBreak(movingPosition, LogicalDirection.Backward))
2309movingPosition = movingPosition.GetNextInsertionPosition(LogicalDirection.Backward);
2313if (TextPointerBase.IsNextToPlainLineBreak(movingPosition, LogicalDirection.Backward))
2395ITextPointer position = This.Selection.Start.GetNextInsertionPosition(LogicalDirection.Backward);
2411ITextPointer cellEnd = position.GetNextInsertionPosition(LogicalDirection.Backward);
System\windows\Documents\TextEditorTyping.cs (22)
610ITextPointer deletePosition = position.GetNextInsertionPosition(LogicalDirection.Backward);
635position = position.GetFrozenPointer(LogicalDirection.Backward);
642position.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.Text)
664This.Selection.ExtendToNextInsertionPosition(LogicalDirection.Backward);
672else if (backspacePosition.GetPointerContext(LogicalDirection.Backward) != TextPointerContext.Text)
681This.Selection.ExtendToNextInsertionPosition(LogicalDirection.Backward);
713This.Selection.SetCaretToPosition(position, LogicalDirection.Backward, /*allowStopAtLineEnd:*/false, /*allowStopNearSpace:*/true);
729LogicalDirection directionOfDelete = position.CompareTo(deletePosition) < 0 ? LogicalDirection.Forward : LogicalDirection.Backward;
763if (directionOfDelete == LogicalDirection.Backward)
800position.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart &&
806while (position.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart)
813position = position.GetNextContextPosition(LogicalDirection.Backward);
814if (position.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart &&
822position = position.GetNextContextPosition(LogicalDirection.Backward);
833if (position.GetPointerContext(LogicalDirection.Backward) != TextPointerContext.ElementStart)
847while (navigator.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart &&
854if (!(navigator.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart &&
962TextPointerBase.MoveToNextWordBoundary(wordBoundary, LogicalDirection.Backward);
1363if (HandleTabInTables(This, LogicalDirection.Backward))
1395This.Selection.SetCaretToPosition(This.Selection.Start, LogicalDirection.Backward, /*allowStopAtLineEnd:*/false, /*allowStopNearSpace:*/false);
1543ITextPointer caretPosition = This.Selection.End.CreatePointer(LogicalDirection.Backward);
1546This.Selection.SetCaretToPosition(caretPosition, LogicalDirection.Backward, /*allowStopAtLineEnd:*/true, /*allowStopNearSpace:*/true);
System\Windows\Documents\TextPointerBase.cs (36)
87else if (direction == LogicalDirection.Backward && limit.CompareTo(thisPointer) >= 0)
182Type backwardType = backwardPosition.GetElementType(LogicalDirection.Backward);
186TextPointerContext backwardContext = backwardPosition.GetPointerContext(LogicalDirection.Backward);
227TextPointerContext backwardContext = position.GetPointerContext(LogicalDirection.Backward);
252TextPointerContext backwardContext = position.GetPointerContext(LogicalDirection.Backward);
269position.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart;
385return IsAtNonMergeableInlineEdge(position, LogicalDirection.Backward);
420if (position.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart &&
551MoveToNextWordBoundary(navigator, direction == LogicalDirection.Backward ? LogicalDirection.Forward : LogicalDirection.Backward);
555if (direction == LogicalDirection.Backward)
564wordStart = RestrictWithinBlock(thisPosition, wordStart, LogicalDirection.Backward);
570wordStart = wordStart.GetFrozenPointer(LogicalDirection.Backward);
575wordStart = wordEnd.GetFrozenPointer(LogicalDirection.Backward);
585Invariant.Assert(!(direction == LogicalDirection.Backward) || position.CompareTo(limit) >= 0, "for backward direction position must be >= than limit");
588while (direction == LogicalDirection.Backward ? position.CompareTo(limit) > 0 : position.CompareTo(limit) < 0)
609return limit.GetInsertionPosition(direction == LogicalDirection.Backward ? LogicalDirection.Forward : LogicalDirection.Backward);
628(direction == LogicalDirection.Backward && IsCharUnicodeNewLine(textBuffer[1]))
712thisPosition.GetPointerContext(LogicalDirection.Backward) != TextPointerContext.ElementStart;
723thisPosition.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementEnd &&
724!typeof(Inline).IsAssignableFrom(thisPosition.GetElementType(LogicalDirection.Backward));
738while (pointer.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart)
744pointer = pointer.GetNextContextPosition(LogicalDirection.Backward);
776paragraphOrBlockUIContainer.ElementStart.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart)
980(direction == LogicalDirection.Backward && thisNavigator.CompareTo(initialPosition) < 0))
1010if (direction == LogicalDirection.Backward)
1148oppositeDirection = LogicalDirection.Backward;
1261symbolCount += LeaveNonMergeableAncestor(thisNavigator, LogicalDirection.Backward);
1266if (direction == LogicalDirection.Backward && IsAtNonMergeableInlineStart(thisNavigator))
1268symbolCount += LeaveNonMergeableAncestor(thisNavigator, LogicalDirection.Backward);
1329TextPointerContext backwardContext = position.GetPointerContext(LogicalDirection.Backward);
1364if (position.GetTextInRun(LogicalDirection.Backward, neighborhood, 0, 1) == 1 &&
1423runLength = Math.Min(navigator.GetTextRunLength(LogicalDirection.Backward), SelectionWordBreaker.MinContextLength - preceedingCount);
1433navigator.MoveToInsertionPosition(LogicalDirection.Backward);
1435while (navigator.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.Text);
System\Windows\Documents\TextStore.cs (26)
366this.TextSelection.SetCaretToPosition(start, LogicalDirection.Backward, /*allowStopAtLineEnd:*/true, /*allowStopNearSpace:*/true);
684startNavigator.SetLogicalDirection(LogicalDirection.Backward);
977ITextPointer positionCur = position.CreatePointer(LogicalDirection.Backward);
979positionPrev.MoveToNextInsertionPosition(LogicalDirection.Backward);
1065endPointer = CreatePointerAtCharOffset(endIndex, LogicalDirection.Backward);
1066endPointer.MoveToInsertionPosition(LogicalDirection.Backward);
2004this.TextSelection.SetCaretToPosition(range.End, LogicalDirection.Backward, /*allowStopAtLineEnd:*/true, /*allowStopNearSpace:*/true);
2378_previousCompositionStart = (_previousCompositionStartOffset == -1) ? null : textEditor.TextContainer.CreatePointerAtOffset(_previousCompositionStartOffset, LogicalDirection.Backward);
2397_previousCompositionStart = (_previousCompositionStartOffset == -1) ? null : textEditor.TextContainer.CreatePointerAtOffset(_previousCompositionStartOffset, LogicalDirection.Backward);
2897start = CreatePointerAtCharOffset(startIndex, LogicalDirection.Backward);
3029positionNext.MoveToNextInsertionPosition(LogicalDirection.Backward);
3169lineBounds.Union(end.GetCharacterRect(LogicalDirection.Backward));
3175TextPointerContext context = navigator.GetPointerContext(LogicalDirection.Backward);
3179lineBounds.Union(navigator.GetCharacterRect(LogicalDirection.Backward));
3184lineBounds.Union(navigator.GetCharacterRect(LogicalDirection.Backward));
3399TextPointer previousPosition = start.GetNextInsertionPosition(LogicalDirection.Backward);
3412if (start.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart)
3414start = start.GetNextInsertionPosition(LogicalDirection.Backward);
3447end = (startCharOffset == endCharOffset) ? start : CreatePointerAtCharOffset(endCharOffset, LogicalDirection.Backward);
3479start = start.GetFormatNormalizedPosition(LogicalDirection.Backward);
3484start = start.GetFormatNormalizedPosition(LogicalDirection.Backward);
3485end = end.GetFormatNormalizedPosition(LogicalDirection.Backward);
3627ITextPointer start = this.TextContainer.CreatePointerAtOffset(record.StartOffsetBefore, LogicalDirection.Backward);
3789start = end.GetFrozenPointer(LogicalDirection.Backward);
3967ITextPointer anchor = this.TextContainer.CreatePointerAtOffset(imeSelectionAnchorOffset, LogicalDirection.Backward);
3968ITextPointer moving = this.TextContainer.CreatePointerAtOffset(imeSelectionMovingOffset, LogicalDirection.Backward);