diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index 1cc4fbc635d..8548eb3a06b 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -1564,6 +1564,11 @@ bool Viewport::_gui_call_input(Control *p_control, const Ref &p_inpu } } + if (is_input_handled()) { + // Break after Physics Picking in SubViewport. + break; + } + if (ci->is_set_as_top_level()) { break; } @@ -3045,6 +3050,7 @@ void Viewport::push_unhandled_input(const Ref &p_event, bool p_local )) { physics_picking_events.push_back(ev); + set_input_as_handled(); } } } diff --git a/tests/scene/test_text_edit.h b/tests/scene/test_text_edit.h index f3f2b4cb342..67d473128ee 100644 --- a/tests/scene/test_text_edit.h +++ b/tests/scene/test_text_edit.h @@ -38,6 +38,7 @@ namespace TestTextEdit { TEST_CASE("[SceneTree][TextEdit] text entry") { + SceneTree::get_singleton()->get_root()->set_physics_object_picking(false); TextEdit *text_edit = memnew(TextEdit); SceneTree::get_singleton()->get_root()->add_child(text_edit); text_edit->grab_focus();