diff --git a/platform/linuxbsd/x11/display_server_x11.cpp b/platform/linuxbsd/x11/display_server_x11.cpp index 80ea30ab157..540726fa6dc 100644 --- a/platform/linuxbsd/x11/display_server_x11.cpp +++ b/platform/linuxbsd/x11/display_server_x11.cpp @@ -1875,6 +1875,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 259227dc780..1986169442f 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(); }