diff options
author | hlpr98 <hlpr98@gmail.com> | 2022-03-16 21:49:02 +0100 |
---|---|---|
committer | bfredl <bjorn.linse@gmail.com> | 2022-03-17 19:20:20 +0100 |
commit | c6640d0d700f977913606277418be546404d5fd7 (patch) | |
tree | fca4bd23f2a97c9ce0b4fa7d9c8b4cf87c36a480 | |
parent | 663616033834c5da3b8f48b0bd0db783fc92db31 (diff) | |
download | rneovim-c6640d0d700f977913606277418be546404d5fd7.tar.gz rneovim-c6640d0d700f977913606277418be546404d5fd7.tar.bz2 rneovim-c6640d0d700f977913606277418be546404d5fd7.zip |
feat(ui_client): handle resize events
-rw-r--r-- | src/nvim/ui.c | 17 | ||||
-rw-r--r-- | src/nvim/ui_client.c | 1 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/nvim/ui.c b/src/nvim/ui.c index 7c67c058b0..da50f068b7 100644 --- a/src/nvim/ui.c +++ b/src/nvim/ui.c @@ -12,6 +12,7 @@ #include "nvim/charset.h" #include "nvim/cursor.h" #include "nvim/cursor_shape.h" +#include "nvim/msgpack_rpc/channel.h" #include "nvim/diff.h" #include "nvim/event/loop.h" #include "nvim/ex_cmds2.h" @@ -224,7 +225,21 @@ void ui_refresh(void) int save_p_lz = p_lz; p_lz = false; // convince redrawing() to return true ... - screen_resize(width, height); + if (!ui_client_channel_id) { + screen_resize(width, height); + } else { + Array args = ARRAY_DICT_INIT; + Error err = ERROR_INIT; + ADD(args, INTEGER_OBJ((int)width)); + ADD(args, INTEGER_OBJ((int)height)); + rpc_send_call(ui_client_channel_id, "nvim_ui_try_resize", args, &err); + + if (ERROR_SET(&err)) { + ELOG("ui_client resize: %s", err.msg); + } + api_clear_error(&err); + } + p_lz = save_p_lz; if (ext_widgets[kUIMessages]) { diff --git a/src/nvim/ui_client.c b/src/nvim/ui_client.c index f11ed45e86..aa33f2fc73 100644 --- a/src/nvim/ui_client.c +++ b/src/nvim/ui_client.c @@ -92,6 +92,7 @@ void ui_client_execute(uint64_t chan) { while (true) { loop_poll_events(&main_loop, -1); + multiqueue_process_events(resize_events); } getout(0); |