From e1ca49b4b66e48f9c966b8359f9148fd349af0b7 Mon Sep 17 00:00:00 2001 From: janglee Date: Tue, 24 Mar 2020 17:11:09 +0530 Subject: [PATCH] Corrected text selection in color picker Fixes #35603 (cherry picked from commit 77b70aa79d006790168d623821d8e2c3bf505b67) --- scene/gui/color_picker.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/scene/gui/color_picker.cpp b/scene/gui/color_picker.cpp index b19c0fdf7d3..5f5c9c44f59 100644 --- a/scene/gui/color_picker.cpp +++ b/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(); }