diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index fe02d975868..03747b3b6b3 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -738,6 +738,14 @@ void Viewport::_process_picking() { while (physics_picking_events.size()) { local_input_handled = false; + if (!handle_input_locally) { + Viewport *vp = this; + while (!Object::cast_to(vp) && vp->get_parent()) { + vp = vp->get_parent()->get_viewport(); + } + vp->local_input_handled = false; + } + Ref ev = physics_picking_events.front()->get(); physics_picking_events.pop_front();