summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorordigdug <originaldigdug@yahoo.com>2018-08-18 11:10:23 -0400
committerordigdug <originaldigdug@yahoo.com>2018-08-18 11:47:14 -0400
commit17b439844da7fa1460914c839240157d847a8f85 (patch)
treeb775f9f0963daac55898df466002040c62618a1f
parentff8e6f920cd99954c3394412713950c1195199f2 (diff)
Fixes colorpicker popup immeditately closing when interacting with colorpicker property in a subinspector. Fixes #19559
-rw-r--r--editor/editor_properties.cpp9
-rw-r--r--editor/editor_properties.h1
2 files changed, 9 insertions, 1 deletions
diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp
index 0cbd5f0bff..e1490d7fbe 100644
--- a/editor/editor_properties.cpp
+++ b/editor/editor_properties.cpp
@@ -1735,12 +1735,18 @@ EditorPropertyTransform::EditorPropertyTransform() {
void EditorPropertyColor::_color_changed(const Color &p_color) {
- emit_signal("property_changed", get_edited_property(), p_color);
+ emit_signal("property_changed", get_edited_property(), p_color, true);
+}
+
+void EditorPropertyColor::_popup_closed() {
+
+ emit_signal("property_changed", get_edited_property(), picker->get_pick_color(), false);
}
void EditorPropertyColor::_bind_methods() {
ClassDB::bind_method(D_METHOD("_color_changed"), &EditorPropertyColor::_color_changed);
+ ClassDB::bind_method(D_METHOD("_popup_closed"), &EditorPropertyColor::_popup_closed);
}
void EditorPropertyColor::update_property() {
@@ -1758,6 +1764,7 @@ EditorPropertyColor::EditorPropertyColor() {
add_child(picker);
picker->set_flat(true);
picker->connect("color_changed", this, "_color_changed");
+ picker->connect("popup_closed", this, "_popup_closed");
}
////////////// NODE PATH //////////////////////
diff --git a/editor/editor_properties.h b/editor/editor_properties.h
index d5fac9c1a0..ea107d76b0 100644
--- a/editor/editor_properties.h
+++ b/editor/editor_properties.h
@@ -476,6 +476,7 @@ class EditorPropertyColor : public EditorProperty {
GDCLASS(EditorPropertyColor, EditorProperty)
ColorPickerButton *picker;
void _color_changed(const Color &p_color);
+ void _popup_closed();
protected:
static void _bind_methods();