mirror of
https://github.com/neovim/neovim.git
synced 2024-12-31 17:13:26 -07:00
tui/remote_ui: Fix some regressions
- Explicitly set the SignalWatcher event queue. Without this, the watcher will publish events to the fast queue, resulting in resize bugs for certain terminals(#2322). - Set `async = false` to the `remote_ui_attach` handler(It was a deferred before, this is the new equivalent)
This commit is contained in:
parent
d5b5063622
commit
6e59b7b0e5
@ -28,7 +28,7 @@ void remote_ui_init(void)
|
||||
connected_uis = pmap_new(uint64_t)();
|
||||
// Add handler for "attach_ui"
|
||||
String method = cstr_as_string("ui_attach");
|
||||
MsgpackRpcRequestHandler handler = {.fn = remote_ui_attach, .async = true};
|
||||
MsgpackRpcRequestHandler handler = {.fn = remote_ui_attach, .async = false};
|
||||
msgpack_rpc_add_method_handler(method, handler);
|
||||
method = cstr_as_string("ui_detach");
|
||||
handler.fn = remote_ui_detach;
|
||||
|
@ -140,6 +140,7 @@ UI *tui_start(void)
|
||||
|
||||
// listen for SIGWINCH
|
||||
signal_watcher_init(&loop, &data->winch_handle, ui);
|
||||
data->winch_handle.events = queue_new_child(loop.events);
|
||||
signal_watcher_start(&data->winch_handle, sigwinch_cb, SIGWINCH);
|
||||
|
||||
ui->stop = tui_stop;
|
||||
@ -179,6 +180,7 @@ static void tui_stop(UI *ui)
|
||||
// Destroy common stuff
|
||||
kv_destroy(data->invalid_regions);
|
||||
signal_watcher_stop(&data->winch_handle);
|
||||
queue_free(data->winch_handle.events);
|
||||
signal_watcher_close(&data->winch_handle, NULL);
|
||||
// Destroy input stuff
|
||||
term_input_destroy(data->input);
|
||||
|
Loading…
Reference in New Issue
Block a user