1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-16 01:34:58 +00:00

GTextEditor: The Home key should jump to the first non-space character

Press Home twice to get to column 0. This feels way more natural.
This commit is contained in:
Andreas Kling 2019-10-26 13:57:51 +02:00
parent 532001f4c1
commit 4fa8acf6ea
2 changed files with 15 additions and 1 deletions

View file

@ -568,8 +568,12 @@ void GTextEditor::keydown_event(GKeyEvent& event)
return;
}
if (!event.ctrl() && event.key() == KeyCode::Key_Home) {
int first_nonspace_column = current_line().first_non_whitespace_column();
toggle_selection_if_needed_for_event(event);
set_cursor(m_cursor.line(), 0);
if (m_cursor.column() == first_nonspace_column)
set_cursor(m_cursor.line(), 0);
else
set_cursor(m_cursor.line(), first_nonspace_column);
if (event.shift() && m_selection.start().is_valid()) {
m_selection.set_end(m_cursor);
did_update_selection();
@ -1447,6 +1451,15 @@ int GTextEditor::Line::visual_line_containing(int column) const
return visual_line_index;
}
int GTextEditor::Line::first_non_whitespace_column() const
{
for (int i = 0; i < length(); ++i) {
if (!isspace(m_text[i]))
return i;
}
return length();
}
void GTextEditor::add_custom_context_menu_action(GAction& action)
{
m_custom_context_menu_actions.append(action);