You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
### Tasks
- [x] `toggleBroadcastInput` isn't in the default settings
- [x] The cursors forget to keep blinking if you focus each pane and then unfocus them
- [x] They don't stop blinking when you unbroadcast
- [x] Broadcast border doesn't appear when you make new panes, but they ARE broadcasted-to!
- [ ] Broadcast doesn't work if you use context menu paste
- [ ] https://github.com/microsoft/terminal/issues/16287
TermControl::_PasteCommandHandler is called for the context menu. (The same path is followed for the normal r-click paste)
ControlInteractivity::RequestPasteTextFromClipboard raises a PasteFromClipboard event
handled in TerminalPage::_PasteFromClipboardHandler
Calls the event's HandleClipboardData() property
calls to ControlInteractivity::_sendPastedTextToConnection
calls ControlCore::PasteText
BUT
TermControl::_pasteTextWithBroadcast is only on TermControl (while the rest of that madness occurs in TerminalPage and ControlInteractivity). GAH.
When we do a paste action (TerminalPage::_PasteText), we just have every control in the tab do a TermControl::PasteTextFromClipboard, which does a _interactivity.RequestPasteTextFromClipboard. The app is orchestrating them all asking for the clipboard contents.
I remember we were talking about adding an API to TermControl along the lines of WriteString(Source, String), where Source would control whether it was (1) bracketed (2) stripped of control sequences (3) etc. Like, "Pasted" strings got the configured treatment, Raw or Input or whatever strings get no treatment at all.
That would afford us the ability to add Source::Broadcast (as a flag(!)), funnel almost all inputs through WriteString, and not accidentally rebroadcast broadcast strings.
Activity
zadjii-msft commentedon Sep 5, 2023
zadjii-msft commentedon Sep 18, 2023
TermControl::_PasteCommandHandleris called for the context menu. (The same path is followed for the normal r-click paste)ControlInteractivity::RequestPasteTextFromClipboardraises aPasteFromClipboardeventTerminalPage::_PasteFromClipboardHandlerHandleClipboardData()propertyControlInteractivity::_sendPastedTextToConnectionControlCore::PasteTextBUT
TermControl::_pasteTextWithBroadcastis only on TermControl (while the rest of that madness occurs in TerminalPage and ControlInteractivity). GAH.When we do a
pasteaction (TerminalPage::_PasteText), we just have every control in the tab do aTermControl::PasteTextFromClipboard, which does a_interactivity.RequestPasteTextFromClipboard. The app is orchestrating them all asking for the clipboard contents.zadjii-msft commentedon Sep 18, 2023
a dumb solution:
ControlInteractivity::_sendPastedTextToConnection, raise aStringSenttoTermControl.TermControlcan then check if it's got_StringSentHandlersand re-raise if neededI feel like that's how it was originally done in an earlier form of #14393...
DHowett commentedon Sep 18, 2023
I remember we were talking about adding an API to TermControl along the lines of
WriteString(Source, String), whereSourcewould control whether it was (1) bracketed (2) stripped of control sequences (3) etc. Like, "Pasted" strings got the configured treatment,RaworInputor whatever strings get no treatment at all.That would afford us the ability to add
Source::Broadcast(as a flag(!)), funnel almost all inputs through WriteString, and not accidentally rebroadcast broadcast strings.zadjii-msft commentedon Sep 18, 2023
okay something else I tried: 35aba0c
even simpler than before. The way this is layered:
StringSentthat text to the other controls.RawWriteString. That ends up in a non-bracketed pastesourcewith theStringSentEventArgs. That'll pollute the tree a bit...Fix some smaller broadcast bugs (#15993)
zadjii-msft commentedon Sep 4, 2024
Closing since there's only one thing left in here (and we've shipped a couple times with that one thing)