Enlighten bracketed paste detection for broadcast groups

This commit is contained in:
Dustin L. Howett
2026-04-28 15:33:20 -05:00
parent ea192b2d94
commit 17cdf292b5

View File

@@ -2960,10 +2960,16 @@ namespace winrt::TerminalApp::implementation
const auto control = sender.as<TermControl>();
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();