From 8c834c9d7cc10b04552e6db74eb9e6a86caf9ab6 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Wed, 21 Dec 2016 21:11:29 -0500 Subject: [PATCH] start to do some cursor movement again --- src/gui/BufferPane.cc | 55 ++++++------------------------------------- 1 file changed, 7 insertions(+), 48 deletions(-) diff --git a/src/gui/BufferPane.cc b/src/gui/BufferPane.cc index 77ddfcc..5cd8ade 100644 --- a/src/gui/BufferPane.cc +++ b/src/gui/BufferPane.cc @@ -291,72 +291,31 @@ void BufferPane::handle_key(uint32_t keyval) void BufferPane::cursor_move(CursorMovement which) { -#if 0 bool moved = false; - int current_row_offset = m_cursor->column / m_columns; - int row_offset = 0; switch (which) { case CursorMovement::LEFT: - moved = m_cursor->check_go_left(1); - m_target_column = m_cursor->column; + moved = m_iterator->go_left_in_line(); break; case CursorMovement::RIGHT: - moved = m_cursor->check_go_right(1, false); - m_target_column = m_cursor->column; + moved = m_iterator->go_right_in_line(false); break; case CursorMovement::UP: - moved = m_cursor->check_go_up(1, m_target_column); + moved = m_iterator->go_previous_line(); break; case CursorMovement::DOWN: - moved = m_cursor->check_go_down(1, m_target_column); + moved = m_iterator->go_next_line(); break; case CursorMovement::SOL: - moved = m_cursor->check_go_start_of_line(); - m_target_column = 0u; + moved = m_iterator->go_start_of_line(); break; case CursorMovement::EOL: - moved = m_cursor->check_go_end_of_line(false); - m_target_column = 0x7FFFFFFFu; + moved = m_iterator->go_end_of_line(false); break; } if (moved) { - switch (which) - { - case CursorMovement::LEFT: - case CursorMovement::RIGHT: - row_offset = m_cursor->column / m_columns - current_row_offset; - break; - case CursorMovement::UP: - { - PieceTable::Cursor c = *m_cursor; - c.go_end_of_line(false); - row_offset = m_cursor->column / m_columns - c.column / m_columns - 1 - current_row_offset; - } - break; - case CursorMovement::DOWN: - { - PieceTable::Cursor c = *m_cursor; - c.go_up(1, 0u); - c.go_end_of_line(false); - row_offset = c.column / m_columns - current_row_offset + 1 + m_cursor->column / m_columns; - } - break; - case CursorMovement::SOL: - row_offset = -current_row_offset; - break; - case CursorMovement::EOL: - { - PieceTable::Cursor c = *m_cursor; - c.go_end_of_line(false); - row_offset = c.column / m_columns - current_row_offset; - } - break; - } - update_cursor_row(m_cursor_row + row_offset); - redraw(); + m_window->request_redraw(); } -#endif }