// column is expected to be between startVisualColumn and endVisualColumn for this fragment int visualToLogicalColumn(int column) { int relativeLogicalColumn = delegate.visualToLogicalColumn(startX, getMinLogicalColumn(), column - startVisualColumn); return isRtl ? startLogicalColumn - relativeLogicalColumn : startLogicalColumn + relativeLogicalColumn; }