From 73faa509ea728912590db4bf06639d7c383e512e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pa=CC=84vels=20Nadtoc=CC=8Cajevs?= <7645683+bruvzg@users.noreply.github.com> Date: Fri, 20 Dec 2024 09:40:25 +0200 Subject: [PATCH] Unset last focused window when it is destroyed. --- platform/linuxbsd/x11/display_server_x11.cpp | 4 ++++ platform/macos/display_server_macos.mm | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/platform/linuxbsd/x11/display_server_x11.cpp b/platform/linuxbsd/x11/display_server_x11.cpp index f8716c6f34c..3e40fe9612e 100644 --- a/platform/linuxbsd/x11/display_server_x11.cpp +++ b/platform/linuxbsd/x11/display_server_x11.cpp @@ -1844,6 +1844,10 @@ void DisplayServerX11::delete_sub_window(WindowID p_id) { window_set_drop_files_callback(Callable(), p_id); windows.erase(p_id); + + if (last_focused_window == p_id) { + last_focused_window = INVALID_WINDOW_ID; + } } int64_t DisplayServerX11::window_get_native_handle(HandleType p_handle_type, WindowID p_window) const { diff --git a/platform/macos/display_server_macos.mm b/platform/macos/display_server_macos.mm index ee9692f5d74..51d965a1cf6 100644 --- a/platform/macos/display_server_macos.mm +++ b/platform/macos/display_server_macos.mm @@ -733,6 +733,10 @@ void DisplayServerMacOS::window_destroy(WindowID p_window) { } #endif windows.erase(p_window); + + if (last_focused_window == p_window) { + last_focused_window = INVALID_WINDOW_ID; + } update_presentation_mode(); }