-
Notifications
You must be signed in to change notification settings - Fork 8.4k
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
Add enhanced key support for ConPty #5021
Conversation
Can someone verify that the table above is correct? Specifically, the "No?" cells. Because if there is a way to know that, I could go ahead and maybe add them in in this PR. |
There's no way for us to pass lock state over VT. |
nit: please edit your markdown table to be fully spaced. commit messages don't actually use markdown, and are presented in standard monospace type |
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 is clever and looks like it works well.
Make sure @zadjii-msft signs off. Please do not automerge this pull request -- the bot will take the single commit message as the merge message and not take into account the PR title or description |
Is this testable? |
I just followed the repro steps from the attached but. Recreated the python script and everything. The output now matches. :) |
I meant is this unit-testable 😉 |
Looks like this would be best tested as a part of #4405, so I'm gonna try and fix that here too. |
Ah! I wasn’t aware of those. Are they intended to be generated by a terminal? I wouldn’t want to contravene best practice. It’ll be really useful to look at these when we are planning robust key event serialization for Win32 compatibility :) |
Ah no. These are for the host to report the state to the client. Going in the other direction would probably require |
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.
Yea these are pretty much all nits
Hello @carlos-zamora! 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 (
|
Thanks for the good work! When should users expect to see these changes? Are ConPty updates pushed through Windows Update? |
@nwillems94 If you're using the Windows Terminal, you'll get this update on the next release of the Windows Terminal If you're still using the vintage console, then yea, you'll need to wait for a Windows Update. Conpty is actually just |
Improve wide glyph support in UIA (GH-4946) Add enhanced key support for ConPty (GH-5021) Set DxRenderer non-text alias mode (GH-5149) Reduce CursorChanged Events for Accessibility (GH-5196) Add more object ID tracing for Accessibility (GH-5215) Add SS3 cursor key encoding to ConPty (GH-5383) UIA: Prevent crash from invalid UTR endpoint comparison (GH-5399) Make CodepointWidthDetector::GetWidth faster (CC-3727) add til::math, use it for float conversions to point, size (GH-5150) Add support for renderer backoff, don't FAIL_FAST on 3x failures, add UI (GH-5353) Fix a deadlock and a bounding rects issue in UIA (GH-5385) Don't duplicate spaces from potentially-wrapped EOL-deferred lines (GH-5398) Reimplement the VT tab stop functionality (CC-5173) Clamp parameter values to a maximum of 32767. (CC-5200) Prevent the cursor type being reset when changing the visibility (CC-5251) Make RIS switch back to the main buffer (CC-5248) Add support for the DSR-OS operating status report (CC-5300) Update the virtual bottom location if the cursor moves below it (CC-5317) ci: run spell check in CI, fix remaining issues (CC-4799) (CC-5352) Set Cascadia Code as default font (GH-5121) Show a double width cursor for double width characters (GH-5319) Delegate all character input to the character event handler (CC-4192) Update til::bitmap to use dynamic_bitset<> + libpopcnt (GH-5092) Merged PR 4465022: [Git2Git] Merged PR 4464559: Console: Ingest OSS changes up to e055079 Correct scrolling invalidation region for tmux in pty w/ bitmap (GH-5122) Render row-by-row instead of invalidating entire screen (GH-5185) Make conechokey use ReadConsoleInputW by default (GH-5148) Manually pass mouse wheel messages to TermControls (GH-5131) This fixes C-M-space for WSL but not for Win32, but I'm not sure there's a problem in Win32 quite yet. (GH-5208) Fix copying wrapped lines by implementing better scrolling (GH-5181) Emit lines wrapped due to spaces at the end correctly (GH-5294) Remove unneeded whitespace (CC-5162)
🎉 Handy links: |
Summary of the Pull Request
ConPty did not set the ENHANCED_KEY flag when generating new input. This change helps detect when it's supposed to do so, and sends it.
References
Enhanced Key Documentation
PR Checklist
Detailed Description of the Pull Request / Additional comments
Validation Steps Performed
Followed bug repro steps. It now matches!