From 50924944274d43149267cd9238625e40b46bbfeb Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Tue, 9 Sep 2014 19:35:54 +0100 Subject: Add support for target column preservation Fixes #64 --- src/window.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/window.cc') diff --git a/src/window.cc b/src/window.cc index fa6c9af9..da2b5f06 100644 --- a/src/window.cc +++ b/src/window.cc @@ -253,7 +253,7 @@ ByteCoord Window::offset_coord(ByteCoord coord, CharCount offset) return buffer().offset_coord(coord, offset); } -ByteCoord Window::offset_coord(ByteCoord coord, LineCount offset) +ByteCoordAndTarget Window::offset_coord(ByteCoordAndTarget coord, LineCount offset) { auto line = clamp(coord.line + offset, 0_line, buffer().line_count()-1); DisplayBuffer display_buffer; @@ -267,8 +267,8 @@ ByteCoord Window::offset_coord(ByteCoord coord, LineCount offset) m_highlighters(hook_handler.context(), HighlightFlags::MoveOnly, display_buffer); m_builtin_highlighters(hook_handler.context(), HighlightFlags::MoveOnly, display_buffer); - CharCount column = find_display_column(lines[0], buffer(), coord); - return find_buffer_coord(lines[1], buffer(), column); + CharCount column = coord.target == -1 ? find_display_column(lines[0], buffer(), coord) : coord.target; + return { find_buffer_coord(lines[1], buffer(), column), column }; } void Window::on_option_changed(const Option& option) -- cgit v1.2.3