private void UpdateRange(long position, Origin origin, Origin watchRange) { int nextLines = bufferLines + (origin == Origin.Begin ? textViewLinesOnScreen : 0); int prevLines = bufferLines + (origin == Origin.End ? textViewLinesOnScreen : 0); LineRange newLineRange = lb.ReadRange(position, origin, prevLines, nextLines, 1000, 1000, watchRange); if (origin == Origin.End) { newLineRange = ShiftLineRange(newLineRange, -(textViewLinesOnScreen - 1)); } RangeUpdated(newLineRange); }