diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp index 4063d404d1..d42b505f7b 100644 --- a/scene/gui/control.cpp +++ b/scene/gui/control.cpp @@ -1488,7 +1488,7 @@ Point2 Control::get_global_position() const { Point2 Control::get_screen_position() const { ERR_FAIL_COND_V(!is_inside_tree(), Point2()); - Point2 global_pos = get_global_position(); + Point2 global_pos = get_viewport()->get_canvas_transform().xform(get_global_position()); Window *w = Object::cast_to(get_viewport()); if (w && !w->is_embedding_subwindows()) { global_pos += w->get_position();