summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2023-06-15 16:08:40 +0200
committerRémi Verschelde <rverschelde@gmail.com>2023-06-15 16:08:40 +0200
commita48285db7bb565083408cd55b7db6e7ece4efe85 (patch)
tree6b48244ea34e731eebb57314bc9df9f54639a771
parent491693e6409d4835b812bfb47253ebb1b3848f4f (diff)
parentd41665eb5e38500e5867173203ed977f683bec77 (diff)
downloadredot-engine-a48285db7bb565083408cd55b7db6e7ece4efe85.tar.gz
Merge pull request #78269 from Sauermann/fix-menubutton-popup-position
Fix position and size of MenuButton popup
-rw-r--r--scene/gui/menu_button.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/scene/gui/menu_button.cpp b/scene/gui/menu_button.cpp
index f75b761d6e..4e80d7a2d6 100644
--- a/scene/gui/menu_button.cpp
+++ b/scene/gui/menu_button.cpp
@@ -97,15 +97,14 @@ void MenuButton::show_popup() {
}
emit_signal(SNAME("about_to_popup"));
- Size2 size = get_size() * get_viewport()->get_canvas_transform().get_scale();
-
- popup->set_size(Size2(size.width, 0));
- Point2 gp = get_screen_position();
- gp.y += size.y;
+ Rect2 rect = get_screen_rect();
+ rect.position.y += rect.size.height;
+ rect.size.height = 0;
+ popup->set_size(rect.size);
if (is_layout_rtl()) {
- gp.x += size.width - popup->get_size().width;
+ rect.position.x += rect.size.width - popup->get_size().width;
}
- popup->set_position(gp);
+ popup->set_position(rect.position);
// If not triggered by the mouse, start the popup with its first enabled item focused.
if (!_was_pressed_by_mouse()) {