diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index e50197d5fa4..a38bed71d13 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -1851,8 +1851,10 @@ void Viewport::_gui_input_event(Ref p_event) { } if (viewport_under) { - Transform2D ai = (viewport_under->get_final_transform().affine_inverse() * viewport_under->_get_input_pre_xform()); - viewport_pos = ai.xform(viewport_pos); + if (viewport_under != this) { + Transform2D ai = (viewport_under->get_final_transform().affine_inverse() * viewport_under->_get_input_pre_xform()); + viewport_pos = ai.xform(viewport_pos); + } // Find control under at position. gui.drag_mouse_over = viewport_under->gui_find_control(viewport_pos); if (gui.drag_mouse_over) {