summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-05-23 08:59:20 +0200
committerRémi Verschelde <rverschelde@gmail.com>2024-05-23 08:59:20 +0200
commit55af739d7888e4e0f109776569a66686d76df0b0 (patch)
tree50a8bccc0d6042d19d7074ed45ceacdbe412dd0e
parent01b804f8ac4b66aa32f6bbcccf16df07e6587f36 (diff)
parentcb3ce8590223ea34be4324d0ffb2c149b48456ee (diff)
downloadredot-engine-55af739d7888e4e0f109776569a66686d76df0b0.tar.gz
Merge pull request #92243 from bruvzg/popup_emb_change
Fix `PopupMenu` focus issues after `Viewport::set_embedding_subwindows` is changed.
-rw-r--r--scene/gui/popup_menu.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/scene/gui/popup_menu.cpp b/scene/gui/popup_menu.cpp
index dbf1137bd6..bdd0102b63 100644
--- a/scene/gui/popup_menu.cpp
+++ b/scene/gui/popup_menu.cpp
@@ -1014,9 +1014,6 @@ void PopupMenu::_notification(int p_what) {
float pm_delay = pm->get_submenu_popup_delay();
set_submenu_popup_delay(pm_delay);
}
- if (!is_embedded()) {
- set_flag(FLAG_NO_FOCUS, true);
- }
if (system_menu_id != NativeMenu::INVALID_MENU_ID) {
bind_global_menu();
}
@@ -2829,6 +2826,8 @@ void PopupMenu::popup(const Rect2i &p_bounds) {
if (native) {
NativeMenu::get_singleton()->popup(global_menu, (p_bounds != Rect2i()) ? p_bounds.position : get_position());
} else {
+ set_flag(FLAG_NO_FOCUS, !is_embedded());
+
moved = Vector2();
popup_time_msec = OS::get_singleton()->get_ticks_msec();
if (!is_embedded()) {
@@ -2856,6 +2855,8 @@ void PopupMenu::set_visible(bool p_visible) {
NativeMenu::get_singleton()->popup(global_menu, get_position());
}
} else {
+ set_flag(FLAG_NO_FOCUS, !is_embedded());
+
Popup::set_visible(p_visible);
}
}