summaryrefslogtreecommitdiffstats
path: root/editor/editor_properties.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/editor_properties.cpp')
-rw-r--r--editor/editor_properties.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp
index 0fb57ce40e..c5a35e466c 100644
--- a/editor/editor_properties.cpp
+++ b/editor/editor_properties.cpp
@@ -3179,6 +3179,10 @@ void EditorPropertyResource::_update_preferred_shader() {
}
}
+bool EditorPropertyResource::_should_stop_editing() const {
+ return !resource_picker->is_toggle_pressed();
+}
+
void EditorPropertyResource::_viewport_selected(const NodePath &p_path) {
Node *to_node = get_node(p_path);
if (!Object::cast_to<Viewport>(to_node)) {
@@ -3246,7 +3250,10 @@ void EditorPropertyResource::update_property() {
sub_inspector->set_vertical_scroll_mode(ScrollContainer::SCROLL_MODE_DISABLED);
sub_inspector->set_use_doc_hints(true);
- sub_inspector->set_sub_inspector(true);
+ EditorInspector *parent_inspector = get_parent_inspector();
+ ERR_FAIL_NULL(parent_inspector);
+ sub_inspector->set_root_inspector(parent_inspector->get_root_inspector());
+
sub_inspector->set_property_name_style(InspectorDock::get_singleton()->get_property_name_style());
sub_inspector->connect("property_keyed", callable_mp(this, &EditorPropertyResource::_sub_inspector_property_keyed));
@@ -3350,13 +3357,18 @@ void EditorPropertyResource::_notification(int p_what) {
switch (p_what) {
case NOTIFICATION_EXIT_TREE: {
const EditorInspector *ei = get_parent_inspector();
- if (ei && !ei->is_main_editor_inspector()) {
+ const EditorInspector *main_ei = InspectorDock::get_inspector_singleton();
+ if (ei && main_ei && ei != main_ei && !main_ei->is_ancestor_of(ei)) {
fold_resource();
}
} break;
}
}
+void EditorPropertyResource::_bind_methods() {
+ ClassDB::bind_method(D_METHOD("_should_stop_editing"), &EditorPropertyResource::_should_stop_editing);
+}
+
EditorPropertyResource::EditorPropertyResource() {
use_sub_inspector = bool(EDITOR_GET("interface/inspector/open_resources_in_current_inspector"));
has_borders = true;