-
Notifications
You must be signed in to change notification settings - Fork 7.7k
On Windows, reset cursor visibility back to previous state when rendering progress #16782
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
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.
Looks good to me! Wish we could have a consistent impl across platforms, wonder why Unix can't check the cursor state 🤔
CI failure is due to a .NET install issue that's been reported to the .NET team |
786d2d8
to
28a24d5
Compare
Co-authored-by: Ilya <darpa@yandex.ru>
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
This pull request has been automatically marked as Review Needed because it has been there has not been any activity for 7 days. |
🎉 Handy links: |
PR Summary
The progress rendering code hides the cursor during rendering and makes the cursor visible again after rendering as it assumes the cursor was previously in a visible state. However, if a script intentionally hides the cursor, then using progress will result in the cursor being visible. However, it seems that only Windows supports reading the current cursor visibility state and a platform not supported exception is thrown on Linux and macOS. So the fix is to just cache the current cursor on Windows and set it back when done rendering. No change for Linux/macOS as we still want to explicitly hide the cursor when rendering progress so that you don't see the cursor moving quickly in the console to render progress.
PR Context
Fix #16412
PR Checklist
.h
,.cpp
,.cs
,.ps1
and.psm1
files have the correct copyright headerWIP:
or[ WIP ]
to the beginning of the title (theWIP
bot will keep its status check atPending
while the prefix is present) and remove the prefix when the PR is ready.(which runs in a different PS Host).