diff options
author | Thiago de Arruda <tpadilha84@gmail.com> | 2015-08-17 13:19:53 -0300 |
---|---|---|
committer | Thiago de Arruda <tpadilha84@gmail.com> | 2015-08-21 10:56:57 -0300 |
commit | 6e59b7b0e5cfe84db8629c728b942a5fea6bdda3 (patch) | |
tree | 872278a3770aad7c08f6373712b441a3e7bd36fd /src | |
parent | d5b5063622ab9764a851fdf56c60d14ad0736583 (diff) | |
download | rneovim-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.c | 2 | ||||
-rw-r--r-- | src/nvim/tui/tui.c | 2 |
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); |