MS\Internal\Documents\TextBoxView.cs (27)
589if (offset > 0 && position.LogicalDirection == LogicalDirection.Backward)
620if (position.LogicalDirection == LogicalDirection.Backward && position.Offset > 0)
662lastLineIndex = Math.Min(lastLineIndex, GetLineIndexFromOffset(endOffset, LogicalDirection.Backward));
701ITextPointer endOfLinePosition = _host.TextContainer.CreatePointerAtOffset(_lineMetrics[lineIndex].EndOffset, LogicalDirection.Backward);
702if (TextPointerBase.IsNextToPlainLineBreak(endOfLinePosition, LogicalDirection.Backward))
785else if (position.LogicalDirection == LogicalDirection.Backward)
816if (position.Offset == 0 && direction == LogicalDirection.Backward)
822return position.GetFrozenPointer(LogicalDirection.Backward);
853logicalDirection = LogicalDirection.Backward;
861direction == LogicalDirection.Backward)
871logicalDirection = LogicalDirection.Backward;
876logicalDirection = (nextCharacterHit.TrailingLength > 0) ? LogicalDirection.Backward : LogicalDirection.Forward;
898int lineIndex = GetLineIndexFromPosition(position, LogicalDirection.Backward);
919logicalDirection = LogicalDirection.Backward;
924logicalDirection = (backspaceCharacterHit.TrailingLength > 0) ? LogicalDirection.Backward : LogicalDirection.Forward;
1265ITextPointer start = _host.TextContainer.CreatePointerAtOffset(_lineMetrics[0].Offset, LogicalDirection.Backward);
1668if (offset > 0 && direction == LogicalDirection.Backward)
1720logicalDirection = (charIndex.TrailingLength > 0) ? LogicalDirection.Backward : LogicalDirection.Forward;
1897int lastLineIndex = GetLineIndexFromOffset(endOffset, LogicalDirection.Backward);
2017ITextPointer position = _host.TextContainer.CreatePointerAtOffset(unclippedStartOffset, LogicalDirection.Backward);
2018if (TextPointerBase.IsNextToPlainLineBreak(position, LogicalDirection.Backward))
2062ITextPointer endOfLinePosition = _host.TextContainer.CreatePointerAtOffset(endOffset, LogicalDirection.Backward);
2064if (TextPointerBase.IsNextToPlainLineBreak(endOfLinePosition, LogicalDirection.Backward))
2113ITextPointer position = _host.TextContainer.CreatePointerAtOffset(unclippedStartOffset, LogicalDirection.Backward);
2114if (TextPointerBase.IsNextToPlainLineBreak(position, LogicalDirection.Backward))
2141ITextPointer endOfLinePosition = _host.TextContainer.CreatePointerAtOffset(endOffset, LogicalDirection.Backward);
2143if (TextPointerBase.IsNextToPlainLineBreak(endOfLinePosition, LogicalDirection.Backward))
System\Windows\Documents\FixedFindEngine.cs (6)
148end = new DocumentSequenceTextPointer(childBlock, new FixedTextPointer(false, LogicalDirection.Backward, fixedDoc.FixedContainer.FixedTextBuilder.GetPageEndFlowPosition(translatedPageNumber)));
154end = new DocumentSequenceTextPointer(childBlock, new FixedTextPointer(false, LogicalDirection.Backward, fixedDoc.FixedContainer.FixedTextBuilder.GetPageEndFlowPosition(translatedPageNumber)));
163end = new FixedTextPointer(false, LogicalDirection.Backward, textBuilder.GetPageEndFlowPosition(pageNumber));
169end = new FixedTextPointer(false, LogicalDirection.Backward, textBuilder.GetPageEndFlowPosition(pageNumber));
321new FixedTextPointer(false, LogicalDirection.Backward, pageEndFlowPosition));
327firstSearchPageEnd = new FixedTextPointer(false, LogicalDirection.Backward, startAsFTP.FixedTextContainer.FixedTextBuilder.GetPageEndFlowPosition(pageNumber));
System\Windows\Documents\Speller.cs (17)
190ExpandToWordBreakAndContext(error.Start, LogicalDirection.Backward, language, out ITextPointer contentStart, out ITextPointer contextStart);
704wordBreakLeft = SearchForWordBreaks(caretPosition, LogicalDirection.Backward, language, 1, false /* stopOnError */);
720FindPositionInSegmentList(textMap, LogicalDirection.Backward, segments, out leftBreakOffset, out rightBreakOffset);
790ExpandToWordBreakAndContext(start, LogicalDirection.Backward, language, out contentStart, out contextStart);
1118inwardDirection = direction == LogicalDirection.Forward ? LogicalDirection.Backward : LogicalDirection.Forward;
1124if (direction == LogicalDirection.Backward)
1159if (direction == LogicalDirection.Backward)
1176if (direction == LogicalDirection.Backward)
1203if (direction == LogicalDirection.Backward)
1291if (direction == LogicalDirection.Backward)
1338searchPosition.MoveByOffset(direction == LogicalDirection.Backward ? -ContextBlockSize : +ContextBlockSize);
1343if (direction == LogicalDirection.Backward && closestErrorPosition.CompareTo(searchPosition) > 0 ||
1354if (direction == LogicalDirection.Backward && closestLanguageTransition.CompareTo(searchPosition) > 0 ||
1361if (direction == LogicalDirection.Backward)
1389(direction == LogicalDirection.Backward && navigator.CompareTo(haltPosition) > 0))
1399(direction == LogicalDirection.Backward && navigator.CompareTo(haltPosition) < 0))
1655_basePosition = contextStart.GetFrozenPointer(LogicalDirection.Backward);
System\Windows\Documents\TextContainer.cs (11)
518edge = node.GetEdgeFromOffset(nodeOffset, LogicalDirection.Backward);
630edge = (direction == LogicalDirection.Backward) ? ElementEdge.AfterStart : ElementEdge.BeforeEnd;
641edge = (direction == LogicalDirection.Backward) ? ElementEdge.BeforeStart : ElementEdge.AfterEnd;
652edge = node.GetEdgeFromOffset(nodeOffset, LogicalDirection.Backward);
858originalPosition = this.HasListeners ? new TextPointer(position, LogicalDirection.Backward) : null;
870direction = LogicalDirection.Backward;
883if ((direction == LogicalDirection.Backward && textNode.AfterEndReferenceCount) ||
1586if (!_rootNode.CaretUnitBoundaryCache && position.LogicalDirection == LogicalDirection.Backward)
1629startPosition = new TextPointer(this, _rootNode, ElementEdge.AfterStart, LogicalDirection.Backward);
2764startPosition = new TextPointer(this, elementNode, ElementEdge.BeforeStart, LogicalDirection.Backward);
2769endPosition = new TextPointer(this, elementNode, ElementEdge.AfterEnd, LogicalDirection.Backward);
System\windows\Documents\TextEditorSelection.cs (35)
115ITextPointer lineEnd = position.CreatePointer(LogicalDirection.Backward);
188LogicalDirection movementDirection = IsFlowDirectionRightToLeftThenTopToBottom(This) ? LogicalDirection.Backward : LogicalDirection.Forward;
204LogicalDirection movementDirection = IsFlowDirectionRightToLeftThenTopToBottom(This) ? LogicalDirection.Forward : LogicalDirection.Backward;
221LogicalDirection movementDirection = IsFlowDirectionRightToLeftThenTopToBottom(This) ? LogicalDirection.Backward : LogicalDirection.Forward;
237LogicalDirection movementDirection = IsFlowDirectionRightToLeftThenTopToBottom(This) ? LogicalDirection.Forward : LogicalDirection.Backward;
403ITextPointer previousPosition = lineStartPosition.GetNextInsertionPosition(LogicalDirection.Backward);
468This.Selection.SetCaretToPosition(paragraphRange.Start, LogicalDirection.Backward, /*allowStopAtLineEnd:*/false, /*allowStopNearSpace:*/false);
473This.Selection.SetCaretToPosition(paragraphRange.End, LogicalDirection.Backward, /*allowStopAtLineEnd:*/false, /*allowStopNearSpace:*/false);
517This.Selection.SetCaretToPosition(paragraphRange.Start, LogicalDirection.Backward, /*allowStopAtLineEnd:*/false, /*allowStopNearSpace:*/false);
522if (movingPointer.MoveToNextInsertionPosition(LogicalDirection.Backward))
526This.Selection.SetCaretToPosition(paragraphRange.Start, LogicalDirection.Backward, /*allowStopAtLineEnd:*/false, /*allowStopNearSpace:*/false);
852LogicalDirection orientation = TextPointerBase.IsNextToPlainLineBreak(lineRange.End, LogicalDirection.Backward) ? LogicalDirection.Forward : LogicalDirection.Backward;
915This.Selection.SetCaretToPosition(This.TextContainer.End, LogicalDirection.Backward, /*allowStopAtLineEnd:*/false, /*allowStopNearSpace:*/false);
946LogicalDirection movementDirection = IsFlowDirectionRightToLeftThenTopToBottom(This) ? LogicalDirection.Backward : LogicalDirection.Forward;
962LogicalDirection movementDirection = IsFlowDirectionRightToLeftThenTopToBottom(This) ? LogicalDirection.Forward : LogicalDirection.Backward;
978LogicalDirection movementDirection = IsFlowDirectionRightToLeftThenTopToBottom(This) ? LogicalDirection.Backward : LogicalDirection.Forward;
994LogicalDirection movementDirection = IsFlowDirectionRightToLeftThenTopToBottom(This) ? LogicalDirection.Forward : LogicalDirection.Backward;
1142newMovingPosition = newMovingPosition.GetFrozenPointer(LogicalDirection.Backward);
1184if (This.Selection.ExtendToNextTableRow(LogicalDirection.Backward))
1260ITextPointer previousPosition = lineStartPosition.GetNextInsertionPosition(LogicalDirection.Backward);
1369if (movingPointer.MoveToNextInsertionPosition(LogicalDirection.Backward))
1670TextPointerBase.IsNextToParagraphBreak(This.Selection.AnchorPosition, LogicalDirection.Backward))
1688destination = destination.GetFrozenPointer(LogicalDirection.Backward);
2067LogicalDirection contentDirection = direction == LogicalDirection.Forward ? LogicalDirection.Backward : LogicalDirection.Forward;
2121textEditor.Selection.SetCaretToPosition(textEditor.Selection.End, LogicalDirection.Backward, /*allowStopAtLineEnd:*/false, /*allowStopNearSpace:*/false);
2130textEditor.Selection.SetCaretToPosition(wordBoundary, LogicalDirection.Backward, /*allowStopAtLineEnd:*/false, /*allowStopNearSpace:*/false);
2148TextPointerBase.MoveToNextWordBoundary(wordBoundary, LogicalDirection.Backward);
2194wordBoundary.SetLogicalDirection(direction == LogicalDirection.Forward ? LogicalDirection.Backward : LogicalDirection.Forward);
2306movingPosition.LogicalDirection == LogicalDirection.Backward &&
2308TextPointerBase.IsNextToAnyBreak(movingPosition, LogicalDirection.Backward))
2310movingPosition = movingPosition.GetNextInsertionPosition(LogicalDirection.Backward);
2314if (TextPointerBase.IsNextToPlainLineBreak(movingPosition, LogicalDirection.Backward))
2396ITextPointer position = This.Selection.Start.GetNextInsertionPosition(LogicalDirection.Backward);
2412ITextPointer cellEnd = position.GetNextInsertionPosition(LogicalDirection.Backward);
System\windows\Documents\TextEditorTyping.cs (22)
611ITextPointer deletePosition = position.GetNextInsertionPosition(LogicalDirection.Backward);
636position = position.GetFrozenPointer(LogicalDirection.Backward);
643position.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.Text)
665This.Selection.ExtendToNextInsertionPosition(LogicalDirection.Backward);
673else if (backspacePosition.GetPointerContext(LogicalDirection.Backward) != TextPointerContext.Text)
682This.Selection.ExtendToNextInsertionPosition(LogicalDirection.Backward);
714This.Selection.SetCaretToPosition(position, LogicalDirection.Backward, /*allowStopAtLineEnd:*/false, /*allowStopNearSpace:*/true);
730LogicalDirection directionOfDelete = position.CompareTo(deletePosition) < 0 ? LogicalDirection.Forward : LogicalDirection.Backward;
764if (directionOfDelete == LogicalDirection.Backward)
801position.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart &&
807while (position.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart)
814position = position.GetNextContextPosition(LogicalDirection.Backward);
815if (position.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart &&
823position = position.GetNextContextPosition(LogicalDirection.Backward);
834if (position.GetPointerContext(LogicalDirection.Backward) != TextPointerContext.ElementStart)
848while (navigator.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart &&
855if (!(navigator.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart &&
963TextPointerBase.MoveToNextWordBoundary(wordBoundary, LogicalDirection.Backward);
1364if (HandleTabInTables(This, LogicalDirection.Backward))
1396This.Selection.SetCaretToPosition(This.Selection.Start, LogicalDirection.Backward, /*allowStopAtLineEnd:*/false, /*allowStopNearSpace:*/false);
1544ITextPointer caretPosition = This.Selection.End.CreatePointer(LogicalDirection.Backward);
1547This.Selection.SetCaretToPosition(caretPosition, LogicalDirection.Backward, /*allowStopAtLineEnd:*/true, /*allowStopNearSpace:*/true);
System\Windows\Documents\TextPointerBase.cs (36)
88else if (direction == LogicalDirection.Backward && limit.CompareTo(thisPointer) >= 0)
183Type backwardType = backwardPosition.GetElementType(LogicalDirection.Backward);
187TextPointerContext backwardContext = backwardPosition.GetPointerContext(LogicalDirection.Backward);
228TextPointerContext backwardContext = position.GetPointerContext(LogicalDirection.Backward);
253TextPointerContext backwardContext = position.GetPointerContext(LogicalDirection.Backward);
270position.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart;
386return IsAtNonMergeableInlineEdge(position, LogicalDirection.Backward);
421if (position.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart &&
552MoveToNextWordBoundary(navigator, direction == LogicalDirection.Backward ? LogicalDirection.Forward : LogicalDirection.Backward);
556if (direction == LogicalDirection.Backward)
565wordStart = RestrictWithinBlock(thisPosition, wordStart, LogicalDirection.Backward);
571wordStart = wordStart.GetFrozenPointer(LogicalDirection.Backward);
576wordStart = wordEnd.GetFrozenPointer(LogicalDirection.Backward);
586Invariant.Assert(!(direction == LogicalDirection.Backward) || position.CompareTo(limit) >= 0, "for backward direction position must be >= than limit");
589while (direction == LogicalDirection.Backward ? position.CompareTo(limit) > 0 : position.CompareTo(limit) < 0)
610return limit.GetInsertionPosition(direction == LogicalDirection.Backward ? LogicalDirection.Forward : LogicalDirection.Backward);
629(direction == LogicalDirection.Backward && IsCharUnicodeNewLine(textBuffer[1]))
713thisPosition.GetPointerContext(LogicalDirection.Backward) != TextPointerContext.ElementStart;
724thisPosition.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementEnd &&
725!typeof(Inline).IsAssignableFrom(thisPosition.GetElementType(LogicalDirection.Backward));
739while (pointer.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart)
745pointer = pointer.GetNextContextPosition(LogicalDirection.Backward);
777paragraphOrBlockUIContainer.ElementStart.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart)
981(direction == LogicalDirection.Backward && thisNavigator.CompareTo(initialPosition) < 0))
1011if (direction == LogicalDirection.Backward)
1149oppositeDirection = LogicalDirection.Backward;
1262symbolCount += LeaveNonMergeableAncestor(thisNavigator, LogicalDirection.Backward);
1267if (direction == LogicalDirection.Backward && IsAtNonMergeableInlineStart(thisNavigator))
1269symbolCount += LeaveNonMergeableAncestor(thisNavigator, LogicalDirection.Backward);
1330TextPointerContext backwardContext = position.GetPointerContext(LogicalDirection.Backward);
1365if (position.GetTextInRun(LogicalDirection.Backward, neighborhood, 0, 1) == 1 &&
1424runLength = Math.Min(navigator.GetTextRunLength(LogicalDirection.Backward), SelectionWordBreaker.MinContextLength - preceedingCount);
1434navigator.MoveToInsertionPosition(LogicalDirection.Backward);
1436while (navigator.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.Text);
System\Windows\Documents\TextStore.cs (26)
367this.TextSelection.SetCaretToPosition(start, LogicalDirection.Backward, /*allowStopAtLineEnd:*/true, /*allowStopNearSpace:*/true);
685startNavigator.SetLogicalDirection(LogicalDirection.Backward);
978ITextPointer positionCur = position.CreatePointer(LogicalDirection.Backward);
980positionPrev.MoveToNextInsertionPosition(LogicalDirection.Backward);
1066endPointer = CreatePointerAtCharOffset(endIndex, LogicalDirection.Backward);
1067endPointer.MoveToInsertionPosition(LogicalDirection.Backward);
2005this.TextSelection.SetCaretToPosition(range.End, LogicalDirection.Backward, /*allowStopAtLineEnd:*/true, /*allowStopNearSpace:*/true);
2379_previousCompositionStart = (_previousCompositionStartOffset == -1) ? null : textEditor.TextContainer.CreatePointerAtOffset(_previousCompositionStartOffset, LogicalDirection.Backward);
2398_previousCompositionStart = (_previousCompositionStartOffset == -1) ? null : textEditor.TextContainer.CreatePointerAtOffset(_previousCompositionStartOffset, LogicalDirection.Backward);
2898start = CreatePointerAtCharOffset(startIndex, LogicalDirection.Backward);
3030positionNext.MoveToNextInsertionPosition(LogicalDirection.Backward);
3170lineBounds.Union(end.GetCharacterRect(LogicalDirection.Backward));
3176TextPointerContext context = navigator.GetPointerContext(LogicalDirection.Backward);
3180lineBounds.Union(navigator.GetCharacterRect(LogicalDirection.Backward));
3185lineBounds.Union(navigator.GetCharacterRect(LogicalDirection.Backward));
3400TextPointer previousPosition = start.GetNextInsertionPosition(LogicalDirection.Backward);
3413if (start.GetPointerContext(LogicalDirection.Backward) == TextPointerContext.ElementStart)
3415start = start.GetNextInsertionPosition(LogicalDirection.Backward);
3448end = (startCharOffset == endCharOffset) ? start : CreatePointerAtCharOffset(endCharOffset, LogicalDirection.Backward);
3480start = start.GetFormatNormalizedPosition(LogicalDirection.Backward);
3485start = start.GetFormatNormalizedPosition(LogicalDirection.Backward);
3486end = end.GetFormatNormalizedPosition(LogicalDirection.Backward);
3628ITextPointer start = this.TextContainer.CreatePointerAtOffset(record.StartOffsetBefore, LogicalDirection.Backward);
3790start = end.GetFrozenPointer(LogicalDirection.Backward);
3968ITextPointer anchor = this.TextContainer.CreatePointerAtOffset(imeSelectionAnchorOffset, LogicalDirection.Backward);
3969ITextPointer moving = this.TextContainer.CreatePointerAtOffset(imeSelectionMovingOffset, LogicalDirection.Backward);