|
|
@ -90,21 +90,18 @@ namespace ICSharpCode.AvalonEdit.Rendering |
|
|
|
/// <inheritdoc/>
|
|
|
|
/// <inheritdoc/>
|
|
|
|
public override int GetVisualColumn(int relativeTextOffset) |
|
|
|
public override int GetVisualColumn(int relativeTextOffset) |
|
|
|
{ |
|
|
|
{ |
|
|
|
return VisualColumn + relativeTextOffset - this.RelativeTextOffset; |
|
|
|
return this.VisualColumn + relativeTextOffset - this.RelativeTextOffset; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <inheritdoc/>
|
|
|
|
/// <inheritdoc/>
|
|
|
|
public override int GetNextCaretPosition(int visualColumn, LogicalDirection direction, CaretPositioningMode mode) |
|
|
|
public override int GetNextCaretPosition(int visualColumn, LogicalDirection direction, CaretPositioningMode mode) |
|
|
|
{ |
|
|
|
{ |
|
|
|
int textOffset = parentVisualLine.FirstDocumentLine.Offset + this.RelativeTextOffset; |
|
|
|
int textOffset = parentVisualLine.StartOffset + this.RelativeTextOffset; |
|
|
|
TextSourceView view = new TextSourceView( |
|
|
|
int pos = TextUtilities.GetNextCaretPosition(parentVisualLine.Document, textOffset + visualColumn - this.VisualColumn, direction, mode); |
|
|
|
parentVisualLine.Document, |
|
|
|
if (pos < textOffset || pos > textOffset + this.DocumentLength) |
|
|
|
new SimpleSegment(textOffset, this.DocumentLength)); |
|
|
|
return -1; |
|
|
|
int pos = TextUtilities.GetNextCaretPosition(view, visualColumn - this.VisualColumn, direction, mode); |
|
|
|
|
|
|
|
if (pos < 0) |
|
|
|
|
|
|
|
return pos; |
|
|
|
|
|
|
|
else |
|
|
|
else |
|
|
|
return this.VisualColumn + pos; |
|
|
|
return this.VisualColumn + pos - textOffset; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|