diff options
author | Juan Linietsky <reduzio@gmail.com> | 2016-07-01 10:55:35 -0300 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2016-07-01 10:55:35 -0300 |
commit | 8cbb154466c4555f8ea44ebb9ea98f8a0e4c9877 (patch) | |
tree | 6e69479cfb3f3d5929727a24aaed085de6016d49 /scene/gui | |
parent | 3185ce64c5c27c3ce7c4ce755bfc890bac172f04 (diff) |
Color picker was getting too much focus, made it get not as much focus.
This abuse of focus was the original culprit of #5354
Diffstat (limited to 'scene/gui')
-rw-r--r-- | scene/gui/color_picker.cpp | 12 | ||||
-rw-r--r-- | scene/gui/color_picker.h | 1 |
2 files changed, 9 insertions, 4 deletions
diff --git a/scene/gui/color_picker.cpp b/scene/gui/color_picker.cpp index d6bbdf2d21..06f8c27957 100644 --- a/scene/gui/color_picker.cpp +++ b/scene/gui/color_picker.cpp @@ -72,13 +72,16 @@ void ColorPicker::_notification(int p_what) { _update_color(); } - case NOTIFICATION_VISIBILITY_CHANGED: { - c_text->call_deferred("grab_focus"); - c_text->call_deferred("select"); - } break; + } } +void ColorPicker::set_focus_on_line_edit() { + + c_text->grab_focus(); + c_text->select(); +} + void ColorPicker::_update_controls() { if (edit_alpha) { @@ -628,6 +631,7 @@ void ColorPickerButton::pressed() { popup->set_pos(get_global_pos()-Size2(0,ms.height)); popup->set_size(ms); popup->popup(); + picker->set_focus_on_line_edit(); } diff --git a/scene/gui/color_picker.h b/scene/gui/color_picker.h index f5de982200..b9ef1f1e2f 100644 --- a/scene/gui/color_picker.h +++ b/scene/gui/color_picker.h @@ -107,6 +107,7 @@ public: void set_raw_mode(bool p_enabled); bool is_raw_mode() const; + void set_focus_on_line_edit(); ColorPicker(); }; |