From 4686200f0e70b979436af46cae31c8e3199a95ea Mon Sep 17 00:00:00 2001 From: PouleyKetchoupp Date: Fri, 9 Oct 2020 11:20:38 +0200 Subject: [PATCH] Fix Popup crash in single window mode focus_target->exclusive_child could be invalidated during the call to focus_target->grab_focus(), now using the same logic with safe accesses to focus_target. --- scene/main/window.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scene/main/window.cpp b/scene/main/window.cpp index 7c2350d1c0f..9f014e8175c 100644 --- a/scene/main/window.cpp +++ b/scene/main/window.cpp @@ -895,11 +895,11 @@ void Window::_window_input(const Ref &p_ev) { if (exclusive_child != nullptr) { Window *focus_target = exclusive_child; - while (focus_target->exclusive_child != nullptr) { - focus_target->grab_focus(); - focus_target = focus_target->exclusive_child; - } focus_target->grab_focus(); + while (focus_target->exclusive_child != nullptr) { + focus_target = focus_target->exclusive_child; + focus_target->grab_focus(); + } if (!is_embedding_subwindows()) { //not embedding, no need for event return;