diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp index f4d66d5a281..027dd6640ca 100644 --- a/scene/gui/line_edit.cpp +++ b/scene/gui/line_edit.cpp @@ -399,7 +399,7 @@ void LineEdit::gui_input(const Ref &p_event) { if (context_menu_enabled) { _update_context_menu(); - menu->set_position(get_screen_position() + get_local_mouse_position()); + menu->set_position(get_screen_transform().xform(get_local_mouse_position())); menu->reset_size(); menu->popup(); } @@ -630,7 +630,7 @@ void LineEdit::gui_input(const Ref &p_event) { if (k->is_action("ui_menu", true)) { _update_context_menu(); Point2 pos = Point2(get_caret_pixel_pos().x, (get_size().y + theme_cache.font->get_height(theme_cache.font_size)) / 2); - menu->set_position(get_screen_position() + pos); + menu->set_position(get_screen_transform().xform(pos)); menu->reset_size(); menu->popup(); menu->grab_focus(); diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp index 91beafa4c17..f105672b49d 100644 --- a/scene/gui/rich_text_label.cpp +++ b/scene/gui/rich_text_label.cpp @@ -2189,7 +2189,7 @@ void RichTextLabel::gui_input(const Ref &p_event) { if (b->get_button_index() == MouseButton::RIGHT && context_menu_enabled) { _update_context_menu(); - menu->set_position(get_screen_position() + b->get_position()); + menu->set_position(get_screen_transform().xform(b->get_position())); menu->reset_size(); menu->popup(); grab_focus(); diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index 69da6df7fd2..b632633542b 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -2006,7 +2006,7 @@ void TextEdit::gui_input(const Ref &p_gui_input) { if (context_menu_enabled) { _update_context_menu(); - menu->set_position(get_screen_position() + mpos); + menu->set_position(get_screen_transform().xform(mpos)); menu->reset_size(); menu->popup(); grab_focus(); @@ -2291,7 +2291,7 @@ void TextEdit::gui_input(const Ref &p_gui_input) { if (context_menu_enabled) { _update_context_menu(); adjust_viewport_to_caret(); - menu->set_position(get_screen_position() + get_caret_draw_pos()); + menu->set_position(get_screen_transform().xform(get_caret_draw_pos())); menu->reset_size(); menu->popup(); menu->grab_focus();