From 31f7d68ef48d5eec797114ed5883970fe6391491 Mon Sep 17 00:00:00 2001 From: Dery Almas Date: Sun, 24 Aug 2025 09:58:57 +0200 Subject: [PATCH] Popup: Reset state on visibility change The original logic was never called for certain platforms, leaving the hide reason unset and causing weird semi-random issues with the few users of that internal API, such as when renaming nodes in the scene tree editor. --- scene/gui/popup.cpp | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/scene/gui/popup.cpp b/scene/gui/popup.cpp index 8f4ae10dd6..40e0948195 100644 --- a/scene/gui/popup.cpp +++ b/scene/gui/popup.cpp @@ -78,6 +78,8 @@ void Popup::_notification(int p_what) { if (!is_in_edited_scene_root()) { if (is_visible()) { _initialize_visible_parents(); + popped_up = true; + hide_reason = HIDE_REASON_NONE; } else { _deinitialize_visible_parents(); if (hide_reason == HIDE_REASON_NONE) { @@ -89,15 +91,6 @@ void Popup::_notification(int p_what) { } } break; - case NOTIFICATION_WM_WINDOW_FOCUS_IN: { - if (!is_in_edited_scene_root()) { - if (has_focus()) { - popped_up = true; - hide_reason = HIDE_REASON_NONE; - } - } - } break; - case NOTIFICATION_UNPARENTED: case NOTIFICATION_EXIT_TREE: { if (!is_in_edited_scene_root()) {