Explorar o código

Fix LineEdit caret after using arrow key to deselect

Haoyu Qiu %!s(int64=3) %!d(string=hai) anos
pai
achega
d86a2d57cf
Modificáronse 1 ficheiros con 10 adicións e 6 borrados
  1. 10 6
      scene/gui/line_edit.cpp

+ 10 - 6
scene/gui/line_edit.cpp

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