Fix LineEdit caret after using arrow key to deselect

This commit is contained in:
Haoyu Qiu 2022-07-06 09:24:29 +08:00 committed by Relintai
parent 756795a486
commit f0f2a9d960

View File

@ -402,12 +402,12 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) {
if (!k->get_alt()) if (!k->get_alt())
#endif #endif
{ {
shift_selection_check_pre(k->get_shift());
if (selection.enabled && !k->get_shift()) { if (selection.enabled && !k->get_shift()) {
set_cursor_position(selection.begin); set_cursor_position(selection.begin);
deselect(); deselect();
break; break;
} }
shift_selection_check_pre(k->get_shift());
} }
#ifdef APPLE_STYLE_KEYS #ifdef APPLE_STYLE_KEYS
@ -451,11 +451,15 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) {
FALLTHROUGH; FALLTHROUGH;
} }
case KEY_RIGHT: { case KEY_RIGHT: {
if (selection.enabled && !k->get_shift()) { #ifndef APPLE_STYLE_KEYS
set_cursor_position(selection.end); if (!k->get_alt())
deselect(); #endif
break; {
} else { if (selection.enabled && !k->get_shift()) {
set_cursor_position(selection.end);
deselect();
break;
}
shift_selection_check_pre(k->get_shift()); shift_selection_check_pre(k->get_shift());
} }
#ifdef APPLE_STYLE_KEYS #ifdef APPLE_STYLE_KEYS