GTextEditor: Fixed bug on KeyCode::Key_Right pressed.

Pressing right did nothing when the very last characters of the buffer
were selected.

The expected action would be for the cursor to move to the end of the
buffer.

This patch fixes that.
This commit is contained in:
Andrew Weller 2019-08-25 22:06:19 -06:00 committed by Andreas Kling
parent b50ffaf7e1
commit ed0553fe10
Notes: sideshowbarker 2024-07-19 17:44:42 +09:00

View File

@ -545,24 +545,21 @@ void GTextEditor::keydown_event(GKeyEvent& event)
return;
}
if (event.key() == KeyCode::Key_Right) {
int new_line = m_cursor.line();
int new_column = m_cursor.column();
if (m_cursor.column() < current_line().length()) {
int new_column = m_cursor.column() + 1;
toggle_selection_if_needed_for_event(event);
set_cursor(m_cursor.line(), new_column);
if (m_selection.start().is_valid()) {
m_selection.set_end(m_cursor);
did_update_selection();
}
new_line = m_cursor.line();
new_column = m_cursor.column() + 1;
} else if (m_cursor.line() != line_count() - 1) {
int new_line = m_cursor.line() + 1;
int new_column = 0;
toggle_selection_if_needed_for_event(event);
set_cursor(new_line, new_column);
if (m_selection.start().is_valid()) {
m_selection.set_end(m_cursor);
did_update_selection();
}
}
new_line = m_cursor.line() + 1;
new_column = 0;
}
toggle_selection_if_needed_for_event(event);
set_cursor(new_line, new_column);
if (m_selection.start().is_valid()) {
m_selection.set_end(m_cursor);
did_update_selection();
}
return;
}
if (!event.ctrl() && event.key() == KeyCode::Key_Home) {