-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable Passthrough for VT Input Mode in ConPty #4856
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- I'm largely blocking on the same thing Dustin is
- We still need a function in conhost for "I'm in conpty mode, and the client app turned off VT input mode, I need to reset the Terminal's input mode", right?
if (isPty) | ||
{ | ||
return false; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
god, this API is needlessly verbose ;)
i hope when somebody fixes IsConsolePty
to return a bool, they come fix all of these
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This same infrastructure is tested w/ statemachine and OSME; I am comfortable shipping this without a test. Mike?
Hello @DHowett-MSFT! Because this pull request has the p.s. you can customize the way I help with merging this pull request, such as holding this pull request until a specific person approves. Simply @mention me (
|
This commit enables passthrough mode for VT Input Mode in ConPty. This will be used to pass VT Input from Mouse Mode directly to the app on the other side. ## References microsoft#545 - VT Mouse Mode (Terminal) microsoft#376 - VT Mouse Mode (ConPty) ## Detailed Description of the Pull Request / Additional comments ### ConHost - Set the callback for the InputEngine. - Retrieve `IsInVirtualTerminalInputMode` from the InputBuffer ### Adapter (Dispatch) Retrieve `VTInputMode` setting from ConHost ### Parser - Add a callback to passthrough unknown input sequences directly to the input queue. - If we're in VTInputMode, use the callback ## Validation Steps Performed Tests should still pass.
## Summary of the Pull Request Make TerminalControl synthesize mouse events and Terminal send them to the TerminalInput's MouseInput module. The implementation here takes significant inspiration from how we handle KeyEvents. ## References Closes #545 - VT Mouse Mode (Terminal) References #376 - VT Mouse Mode (ConPty) ### TerminalControl - `_TrySendMouseEvent` attempts to send a mouse event via TermInput. Similar to `_TrySendKeyEvent` - Use the above function to try and send the mouse event _before_ deciding to modify the selection ### TerminalApi - Hookup (re)setting the various modes to handle VT Input - Terminal is _always_ in VT Input mode (important for #4856) ### TerminalDispatch - Hookup (re)setting the various modes to handle VT Input ### TerminalInput - Convert the mouse input position from viewport position to buffer position - Then send it over to the MouseInput in TerminalInput to actually do it (#4848) ## Validation Steps Performed Tests should still pass.
…e's a problem in Win32 quite yet. (#5208) ## Summary of the Pull Request When conpty is in VT input mode, we pass through all the input we receive. This includes all the other `Action*Dispatch` methods, but missed this one. ## References * Missed during #4856 * Discovered during the course of the #4192 review * #5205 Also investigated part of the issue, but found a different bug. ## PR Checklist * [x] Doesn't close anything, just related to above things. * [x] I work here * [ ] Tests added/passed * [n/a] Requires documentation to be updated ## Detailed Description of the Pull Request / Additional comments This will fix the <kbd>ctrl+alt+space</kbd> in the Terminal thing mentioned in #4192, but doesn't actually resolve the root cause of that bug (which is tracked in #5205).
This commit enables passthrough mode for VT Input Mode in ConPty. This
will be used to pass VT Input from Mouse Mode directly to the app on the
other side.
References
#545 - VT Mouse Mode (Terminal)
#376 - VT Mouse Mode (ConPty)
Detailed Description of the Pull Request / Additional comments
ConHost
IsInVirtualTerminalInputMode
from the InputBufferAdapter (Dispatch)
Retrieve
VTInputMode
setting from ConHostParser
input queue.
Validation Steps Performed
Tests should still pass.