-
Notifications
You must be signed in to change notification settings - Fork 8.5k
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
AtlasEngine does not respect bellStyle for git bash #14897
Comments
That doesn't sound like something that the Atlas engine would affect... That sounds more like the "visual bell" that uses the screen reverse sequence. Could you double check your |
You're right about my
What led me to file this bug report is the inconsistency, it only happens when AtlasEngine is enabled. I used the terminal-specific |
Oh no, did we break visual bell for the DX renderer? |
No. If you do something like This was a known issue that we discussed back when |
Yup! We should flush a frame when we get a DECSCNM. |
I have started working on this issue. I'm about halfway done writing code that can block the caller until a frame has been rendered. This would ensure that AtlasEngine (or any other renderer) has drawn the visual bell for at least 1 frame. This would also allow us to implement synchronized update sequences #8331. Unfortunately, I won't be able to land this in 1.19 because to implement this correctly I need to rewrite all of |
FYI, the way I implemented the synchronized update sequence was with a simple It felt like a bit of a hack, but it seemed to work OK, and didn't require rewriting all of Also, I'm not entirely sure what you mean by "block the caller until a frame has been rendered", but for synchronized updates, the VT parser needs to carry on parsing output while the renderer is blocked, which seems like it might be the opposite of what you're proposing. |
Ah whoops, I was a bit too terse. Basically, I'd like to block the VT thread when the synchronized update ends (not when it begins). From what I could tell, that's what other implementations do so I wanted to adopt it. The "at which point any changes made during the update should be applied atomically" part of the spec seems a bit ambiguous. It would've fit this issue, since it requires flushing a frame as well. The current I prototyped a "better" |
I should mention that I don't want to imply with my comment that I strictly want to build it that way. The only thing I feel strongly about is that I think the current |
OK, that makes sense. I didn't particular care about triggering the refresh exactly at the point of the end sequence because it's not something that apps can rely on anyway (because of the need for a timeout), and it seemed to work well enough for my use case. I certainly wouldn't be opposed to a better solution though. I just lost interest with the idea once I realised I could achieve what I needed with the standard VT paging operations. |
Windows Terminal version
1.16.10262.0
Windows build number
10.0.22621.1265
Other Software
git bash (git for windows version 2.39.2.windows.1)
Steps to reproduce
Expected Behavior
Respect users choice of "bellStyle", in my case "none", so nothing should happen.
Actual Behavior
Terminal flashing (like "bellStyle": "window")
The text was updated successfully, but these errors were encountered: