diff options
author | Sean Dewar <6256228+seandewar@users.noreply.github.com> | 2025-02-15 17:25:48 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-15 17:25:48 +0000 |
commit | a49f95d887a2425f11cb4a9b38f7b0039e4d837f (patch) | |
tree | 0110f0b5315207906bc6556a9a1b47f146cd4d89 /runtime | |
parent | 8e4b77134a1cbc08b7372b6834eafc7cecdbc33e (diff) | |
download | rneovim-a49f95d887a2425f11cb4a9b38f7b0039e4d837f.tar.gz rneovim-a49f95d887a2425f11cb4a9b38f7b0039e4d837f.tar.bz2 rneovim-a49f95d887a2425f11cb4a9b38f7b0039e4d837f.zip |
fix(terminal): avoid mismatched `busy_start` without `busy_stop` (#32458)
Problem: `showmode` in `terminal_enter` may cause `vpeekc` to process events,
which may handle pending escape sequences. If `CSI ? 25 l` is handled to hide
the cursor, it may remain hidden even after leaving terminal mode if both
`terminal_enter` and (indirectly) `showmode` call `ui_busy_start`, as there is
only one matching call to `ui_busy_stop` after leaving terminal mode.
Solution: let `terminal_enter` handle setting the initial visibility of the
cursor before calling `showmode`.
Closes #32456.
This simple solution assumes it isn't possible for e.g. `os_breakcheck` to be
called indirectly by something else before `terminal_enter` initially handles
cursor visibility and after it restores it, which I think is true.
Diffstat (limited to 'runtime')
0 files changed, 0 insertions, 0 deletions