[3.2][macOS] Command-backspace in line edit

Make command-backspace in line edit work like other macOS applications.

If there is a selection, command-backspace deletes the selection.

If there isn't a selection, command-backspace deletes from the cursor to the beginning of the line edit.

This addresses part of godotengine/godot#23548
This commit is contained in:
Andy Maloney 2020-06-18 17:42:51 -04:00
parent ae59e22cdd
commit 5bbb15418f
1 changed files with 16 additions and 0 deletions

View File

@ -285,6 +285,22 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) {
set_cursor_position(text.length()); set_cursor_position(text.length());
shift_selection_check_post(k->get_shift()); shift_selection_check_post(k->get_shift());
} break; } break;
case (KEY_BACKSPACE): {
if (!editable)
break;
// If selected, delete the selection
if (selection.enabled) {
selection_delete();
break;
}
// Otherwise delete from cursor to beginning of text edit
int current_pos = get_cursor_position();
if (current_pos != 0) {
delete_text(0, current_pos);
}
} break;
#endif #endif
default: { default: {
handled = false; handled = false;