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:
parent
532001f4c1
commit
4fa8acf6ea
2 changed files with 15 additions and 1 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue