From a93578288e79fbe4230a87412813d320a7f797ea Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Sat, 23 Sep 2017 16:08:34 -0400 Subject: [PATCH] fix cursor column handling --- src/gui/BufferPane.cc | 15 +++++++-------- src/gui/BufferPane.h | 1 - 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/gui/BufferPane.cc b/src/gui/BufferPane.cc index 6273d7c..a30ce90 100644 --- a/src/gui/BufferPane.cc +++ b/src/gui/BufferPane.cc @@ -26,7 +26,6 @@ BufferPane::BufferPane(Window * window, std::shared_ptr buffer) m_buffer_view->set_scroll_offset(5); m_buffer_view->update(); m_target_column = 0; - m_cursor_virtual_column = 0; m_show_status_bar = true; m_command_mode = false; m_focused = false; @@ -104,10 +103,10 @@ void BufferPane::draw_buffer_line(int screen_row, std::shared_ptr= it.virtual_column()) && - (m_cursor_virtual_column < (it.virtual_column() + cwidth))) + else if ((m_buffer_view->cursor_virtual_column() >= it.virtual_column()) && + (m_buffer_view->cursor_virtual_column() < (it.virtual_column() + cwidth))) { - int col = it.screen_column() + (m_cursor_virtual_column - it.virtual_column()); + int col = it.screen_column() + (m_buffer_view->cursor_virtual_column() - it.virtual_column()); int row = draw_row; while (col >= m_columns) { @@ -141,10 +140,10 @@ void BufferPane::draw_buffer_line(int screen_row, std::shared_ptr it.virtual_column()) && - (m_cursor_virtual_column < (it.virtual_column() + (m_columns - it.screen_column())))) + if ((m_buffer_view->cursor_virtual_column() > it.virtual_column()) && + (m_buffer_view->cursor_virtual_column() < (it.virtual_column() + (m_columns - it.screen_column())))) { - draw_crosshair(col_x(it.screen_column() + (m_cursor_virtual_column - it.virtual_column())), + draw_crosshair(col_x(it.screen_column() + (m_buffer_view->cursor_virtual_column() - it.virtual_column())), row_y(draw_row)); } } @@ -297,7 +296,7 @@ size_t BufferPane::display_column() const return 0u; } } - return m_cursor_virtual_column + 1u; + return m_buffer_view->cursor_virtual_column() + 1u; } void BufferPane::cursor_move(BufferPane::CursorMovement which) diff --git a/src/gui/BufferPane.h b/src/gui/BufferPane.h index c61862f..5039d88 100644 --- a/src/gui/BufferPane.h +++ b/src/gui/BufferPane.h @@ -80,7 +80,6 @@ protected: int m_scroll_offset; int m_cursor_screen_row; int m_cursor_screen_column; - int m_cursor_virtual_column; int m_cursor_row_offset; std::shared_ptr m_iterator; std::list> m_screen_lines;