Quellcode durchsuchen

Corrected text selection in color picker
Fixes #35603

janglee vor 5 Jahren
Ursprung
Commit
77b70aa79d
1 geänderte Dateien mit 12 neuen und 5 gelöschten Zeilen
  1. 12 5
      scene/gui/color_picker.cpp

+ 12 - 5
scene/gui/color_picker.cpp

@@ -624,26 +624,33 @@ void ColorPicker::_screen_pick_pressed() {
 }
 
 void ColorPicker::_focus_enter() {
-	if (c_text->has_focus()) {
+	bool has_ctext_focus = c_text->has_focus();
+	if (has_ctext_focus) {
 		c_text->select_all();
-		return;
+	} else {
+		c_text->select(0, 0);
 	}
+
 	for (int i = 0; i < 4; i++) {
-		if (values[i]->get_line_edit()->has_focus()) {
+		if (values[i]->get_line_edit()->has_focus() && !has_ctext_focus) {
 			values[i]->get_line_edit()->select_all();
-			break;
+		} else {
+			values[i]->get_line_edit()->select(0, 0);
 		}
 	}
 }
 
 void ColorPicker::_focus_exit() {
 	for (int i = 0; i < 4; i++) {
-		values[i]->get_line_edit()->select(0, 0);
+		if (!values[i]->get_line_edit()->get_menu()->is_visible())
+			values[i]->get_line_edit()->select(0, 0);
 	}
 	c_text->select(0, 0);
 }
 
 void ColorPicker::_html_focus_exit() {
+	if (c_text->get_menu()->is_visible())
+		return;
 	_html_entered(c_text->get_text());
 	_focus_exit();
 }