diff options
Diffstat (limited to 'scene/main/viewport.cpp')
-rw-r--r-- | scene/main/viewport.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index fe02d97586..f92ab76753 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -3316,6 +3316,16 @@ void Viewport::push_input(const Ref<InputEvent> &p_event, bool p_local_coords) { } local_input_handled = false; + if (!handle_input_locally) { + Viewport *vp = this; + while (true) { + if (Object::cast_to<Window>(vp) || !vp->get_parent()) { + break; + } + vp = vp->get_parent()->get_viewport(); + } + vp->local_input_handled = false; + } Ref<InputEvent> ev; if (!p_local_coords) { |