aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThiago de Arruda <tpadilha84@gmail.com>2015-08-17 13:19:53 -0300
committerThiago de Arruda <tpadilha84@gmail.com>2015-08-21 10:56:57 -0300
commit6e59b7b0e5cfe84db8629c728b942a5fea6bdda3 (patch)
tree872278a3770aad7c08f6373712b441a3e7bd36fd /src
parentd5b5063622ab9764a851fdf56c60d14ad0736583 (diff)
downloadrneovim-6e59b7b0e5cfe84db8629c728b942a5fea6bdda3.tar.gz
rneovim-6e59b7b0e5cfe84db8629c728b942a5fea6bdda3.tar.bz2
rneovim-6e59b7b0e5cfe84db8629c728b942a5fea6bdda3.zip
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)
Diffstat (limited to 'src')
-rw-r--r--src/nvim/msgpack_rpc/remote_ui.c2
-rw-r--r--src/nvim/tui/tui.c2
2 files changed, 3 insertions, 1 deletions
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);