From 6e59b7b0e5cfe84db8629c728b942a5fea6bdda3 Mon Sep 17 00:00:00 2001 From: Thiago de Arruda Date: Mon, 17 Aug 2015 13:19:53 -0300 Subject: 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) --- src/nvim/msgpack_rpc/remote_ui.c | 2 +- src/nvim/tui/tui.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/nvim/msgpack_rpc/remote_ui.c b/src/nvim/msgpack_rpc/remote_ui.c index 403ac13f2f..f0d92b52a0 100644 --- a/src/nvim/msgpack_rpc/remote_ui.c +++ b/src/nvim/msgpack_rpc/remote_ui.c @@ -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; diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c index 6382993d5b..acc2ccc682 100644 --- a/src/nvim/tui/tui.c +++ b/src/nvim/tui/tui.c @@ -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); -- cgit