From bdc2651ea6ce99970f87fcc8beb2b4cfde41e948 Mon Sep 17 00:00:00 2001 From: bruvzg <7645683+bruvzg@users.noreply.github.com> Date: Fri, 17 Apr 2026 11:35:26 +0300 Subject: [PATCH] [WinRT] Wait for DispatcherQueueController shutdown. --- platform/windows/winrt_utils.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/platform/windows/winrt_utils.cpp b/platform/windows/winrt_utils.cpp index c289ca0f50..3b2401bdf3 100644 --- a/platform/windows/winrt_utils.cpp +++ b/platform/windows/winrt_utils.cpp @@ -132,7 +132,15 @@ bool WinRTUtils::create_queue() { } void WinRTUtils::destroy_queue() { - controller.ShutdownQueueAsync(); + IAsyncAction action = controller.ShutdownQueueAsync(); + while (action.Status() == AsyncStatus::Started) { + MSG msg = {}; + while (PeekMessageW(&msg, nullptr, 0, 0, PM_REMOVE)) { + TranslateMessage(&msg); + DispatchMessageW(&msg); + } + } + ERR_FAIL_COND_MSG(action.Status() == AsyncStatus::Error, "DispatcherQueueController shutdown failed."); } bool WinRTUtils::try_show_onecore_emoji_picker() {