From 62aa4a6f9ebc47a95fdf3b987e253f2eff874a5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A3=8E=E9=9D=92=E5=B1=B1?= Date: Wed, 26 Feb 2025 17:46:40 +0800 Subject: [PATCH] Make `EditorProperty` and its child EditorProperties behave more like sibling nodes Let `EditorProperty::gui_input()` no longer handle mouse events that occur in the child EditorProperty rect. --- editor/editor_inspector.cpp | 5 +++-- editor/editor_properties.cpp | 2 +- editor/editor_properties_array_dict.cpp | 2 -- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp index 824e288a43e..5818c863538 100644 --- a/editor/editor_inspector.cpp +++ b/editor/editor_inspector.cpp @@ -918,6 +918,9 @@ void EditorProperty::gui_input(const Ref &p_event) { if (me.is_valid()) { Vector2 mpos = me->get_position(); + if (bottom_child_rect.has_point(mpos)) { + return; // Makes child EditorProperties behave like sibling nodes when handling mouse events. + } if (is_layout_rtl()) { mpos.x = get_size().x - mpos.x; } @@ -2715,8 +2718,6 @@ VBoxContainer *EditorInspectorArray::get_vbox(int p_index) { EditorInspectorArray::EditorInspectorArray(bool p_read_only) { read_only = p_read_only; - set_mouse_filter(Control::MOUSE_FILTER_STOP); - odd_style.instantiate(); even_style.instantiate(); diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp index 52780d7c588..935915a0c08 100644 --- a/editor/editor_properties.cpp +++ b/editor/editor_properties.cpp @@ -3303,11 +3303,11 @@ void EditorPropertyResource::update_property() { sub_inspector->set_use_folding(is_using_folding()); sub_inspector->set_draw_focus_border(false); + sub_inspector->set_focus_mode(FocusMode::FOCUS_NONE); sub_inspector->set_use_filter(use_filter); sub_inspector->register_text_enter(parent_inspector->search_box); - sub_inspector->set_mouse_filter(MOUSE_FILTER_STOP); add_child(sub_inspector); set_bottom_editor(sub_inspector); diff --git a/editor/editor_properties_array_dict.cpp b/editor/editor_properties_array_dict.cpp index 93c5a70cf90..066c0d7d9e3 100644 --- a/editor/editor_properties_array_dict.cpp +++ b/editor/editor_properties_array_dict.cpp @@ -430,7 +430,6 @@ void EditorPropertyArray::update_property() { if (!container) { container = memnew(PanelContainer); - container->set_mouse_filter(MOUSE_FILTER_STOP); add_child(container); set_bottom_editor(container); @@ -1208,7 +1207,6 @@ void EditorPropertyDictionary::update_property() { if (!container) { container = memnew(PanelContainer); - container->set_mouse_filter(MOUSE_FILTER_STOP); add_child(container); set_bottom_editor(container);