@@ -2599,18 +2599,24 @@ void EditorPropertyColor::_color_changed(const Color &p_color) {
2599
2599
get_edited_object ()->set (get_edited_property (), p_color);
2600
2600
}
2601
2601
2602
+ void EditorPropertyColor::_picker_created () {
2603
+ picker->get_popup ()->connect (" about_to_popup" , callable_mp (this , &EditorPropertyColor::_popup_opening));
2604
+ picker->connect (" popup_closed" , callable_mp (this , &EditorPropertyColor::_popup_closed), CONNECT_DEFERRED);
2605
+ }
2606
+
2607
+ void EditorPropertyColor::_popup_opening () {
2608
+ EditorNode::get_singleton ()->setup_color_picker (picker->get_picker ());
2609
+ last_color = picker->get_pick_color ();
2610
+ was_checked = !is_checkable () || is_checked ();
2611
+ }
2612
+
2602
2613
void EditorPropertyColor::_popup_closed () {
2603
2614
get_edited_object ()->set (get_edited_property (), was_checked ? Variant (last_color) : Variant ());
2604
2615
if (!picker->get_pick_color ().is_equal_approx (last_color)) {
2605
2616
emit_changed (get_edited_property (), picker->get_pick_color (), " " , false );
2606
2617
}
2607
2618
}
2608
2619
2609
- void EditorPropertyColor::_picker_opening () {
2610
- last_color = picker->get_pick_color ();
2611
- was_checked = !is_checkable () || is_checked ();
2612
- }
2613
-
2614
2620
void EditorPropertyColor::_notification (int p_what) {
2615
2621
switch (p_what) {
2616
2622
case NOTIFICATION_ENTER_TREE:
@@ -2654,9 +2660,7 @@ EditorPropertyColor::EditorPropertyColor() {
2654
2660
add_child (picker);
2655
2661
picker->set_flat (true );
2656
2662
picker->connect (" color_changed" , callable_mp (this , &EditorPropertyColor::_color_changed));
2657
- picker->connect (" popup_closed" , callable_mp (this , &EditorPropertyColor::_popup_closed), CONNECT_DEFERRED);
2658
- picker->get_popup ()->connect (" about_to_popup" , callable_mp (EditorNode::get_singleton (), &EditorNode::setup_color_picker).bind (picker->get_picker ()));
2659
- picker->get_popup ()->connect (" about_to_popup" , callable_mp (this , &EditorPropertyColor::_picker_opening));
2663
+ picker->connect (" picker_created" , callable_mp (this , &EditorPropertyColor::_picker_created), CONNECT_ONE_SHOT);
2660
2664
}
2661
2665
2662
2666
// //////////// NODE PATH //////////////////////
0 commit comments