diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-02-02 22:42:15 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-02 22:42:15 +0800 |
commit | d3355ad01c3b9d1dbc62210c29d8e51245f081aa (patch) | |
tree | cf36953fd1f5d5bdec4681c5ea2ab31eb2bbecd2 /test/functional/lua/api_spec.lua | |
parent | cbf9199d65325c1167d7eeb02a34c85d243e781c (diff) | |
download | rneovim-d3355ad01c3b9d1dbc62210c29d8e51245f081aa.tar.gz rneovim-d3355ad01c3b9d1dbc62210c29d8e51245f081aa.tar.bz2 rneovim-d3355ad01c3b9d1dbc62210c29d8e51245f081aa.zip |
fix(tui): detach/attach on suspend/resume (#22040)
Problem:
When a TUI client is suspended it still receives UI events from the
server, and has to process these accumulated events when it is resumed.
With mulitple TUI clients this is a bigger problem, considering the
following steps:
1. A TUI client is attached.
2. CTRL-Z is pressed and the first client is suspended.
3. Another TUI client is attached.
4. CTRL-Z is pressed and a "suspend" event is sent to both clients. The
second client is suspended, while the first client isn't able to
process the event because it has already been suspended.
5. The first client is resumed. It processes the accumulated "suspend"
event and suspends immediately.
Solution:
Make a TUI client detach on suspend and re-attach on resume.
Diffstat (limited to 'test/functional/lua/api_spec.lua')
0 files changed, 0 insertions, 0 deletions