diff --git a/editor/editor_properties_array_dict.cpp b/editor/editor_properties_array_dict.cpp index dd27e31fdb9..9663157ff99 100644 --- a/editor/editor_properties_array_dict.cpp +++ b/editor/editor_properties_array_dict.cpp @@ -952,7 +952,11 @@ void EditorPropertyDictionary::_property_changed(const String &p_property, Varia } object->set(p_property, p_value); - emit_changed(get_edited_property(), object->get_dict(), p_name, p_changing); + bool new_item_or_key = !p_property.begins_with("indices"); + emit_changed(get_edited_property(), object->get_dict(), p_name, p_changing || new_item_or_key); + if (new_item_or_key) { + update_property(); + } } void EditorPropertyDictionary::_change_type(Object *p_button, int p_slot_index) {