From 17cdf292b5c8b6b33051abdcaf5a04a78ed3d205 Mon Sep 17 00:00:00 2001 From: "Dustin L. Howett" Date: Tue, 28 Apr 2026 15:33:20 -0500 Subject: [PATCH] Enlighten bracketed paste detection for broadcast groups --- src/cascadia/TerminalApp/TerminalPage.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/cascadia/TerminalApp/TerminalPage.cpp b/src/cascadia/TerminalApp/TerminalPage.cpp index 31dcff01ed..6221caf172 100644 --- a/src/cascadia/TerminalApp/TerminalPage.cpp +++ b/src/cascadia/TerminalApp/TerminalPage.cpp @@ -2960,10 +2960,16 @@ namespace winrt::TerminalApp::implementation const auto control = sender.as(); const auto broadcastGroup = _getBroadcastGroupFromControl(control); // Used to determine whether to emit empty pastes and strip extra whitespace - const auto anyHasBracketedPaste = control && !control.ReadOnly() && control.BracketedPasteEnabled(); + const auto anyHasBracketedPaste = std::any_of(std::begin(broadcastGroup), std::end(broadcastGroup), [](auto&& content) { + const auto control{ content.GetTermControl() }; + return control && !control.ReadOnly() && control.BracketedPasteEnabled(); + }); // Used to determine whether to warn on multi-line paste // If none lack bracketed paste, we can skip the warning. - const auto anyHasUnbracketedPaste = !anyHasBracketedPaste; + const auto anyHasUnbracketedPaste = !anyHasBracketedPaste || std::any_of(std::begin(broadcastGroup), std::end(broadcastGroup), [](auto&& content) { + const auto control{ content.GetTermControl() }; + return control && !control.ReadOnly() && !control.BracketedPasteEnabled(); + }); // GetClipboardData might block for up to 30s for delay-rendered contents. co_await winrt::resume_background();