From 7283227485bf09a8488f121f6c160c9948607782 Mon Sep 17 00:00:00 2001 From: Carlos Zamora Date: Tue, 23 Jun 2026 18:08:28 -0700 Subject: [PATCH] Fix Export Tab leaking Enter via Command Palette --- src/cascadia/TerminalApp/TabManagement.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/cascadia/TerminalApp/TabManagement.cpp b/src/cascadia/TerminalApp/TabManagement.cpp index 3a96635d43..f79f5779b4 100644 --- a/src/cascadia/TerminalApp/TabManagement.cpp +++ b/src/cascadia/TerminalApp/TabManagement.cpp @@ -347,6 +347,10 @@ namespace winrt::TerminalApp::implementation // shell32 file picker manually. std::wstring filename{ tab.Title() }; filename = til::clean_filename(filename); + + // GH#20188: yield before the dialog so that the Enter from the Command Palette doesn't leak into the terminal. + // Low priority, so the Command Palette's close paints first. + co_await wil::resume_foreground(Dispatcher(), CoreDispatcherPriority::Low); path = co_await SaveFilePicker(*_hostingHwnd, [filename = std::move(filename)](auto&& dialog) { THROW_IF_FAILED(dialog->SetClientGuid(clientGuidExportFile)); try