diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-05-11 10:48:48 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2023-05-26 07:46:24 +0800 |
commit | 43d66c0ebbe43f40a1f76e1635ccef6181c01317 (patch) | |
tree | 6d0125d9c570eaecb441b3a672c48edfd01fdac9 | |
parent | ee986ee0449b828ca64bf7d4c69624596aab8319 (diff) | |
download | rneovim-43d66c0ebbe43f40a1f76e1635ccef6181c01317.tar.gz rneovim-43d66c0ebbe43f40a1f76e1635ccef6181c01317.tar.bz2 rneovim-43d66c0ebbe43f40a1f76e1635ccef6181c01317.zip |
fix(ui-ext): send title to newly-attached UI
-rw-r--r-- | src/nvim/buffer.c | 1 | ||||
-rw-r--r-- | src/nvim/ex_docmd.c | 3 | ||||
-rw-r--r-- | src/nvim/ui.c | 3 | ||||
-rw-r--r-- | test/functional/ui/screen_basic_spec.lua | 12 |
4 files changed, 14 insertions, 5 deletions
diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c index 11b79fcede..dab07487cd 100644 --- a/src/nvim/buffer.c +++ b/src/nvim/buffer.c @@ -3444,7 +3444,6 @@ void resettitle(void) { ui_call_set_icon(cstr_as_string(lasticon)); ui_call_set_title(cstr_as_string(lasttitle)); - ui_flush(); } #if defined(EXITFREE) diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index 9666d80de2..39a54fa236 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -4875,9 +4875,6 @@ static void ex_stop(exarg_T *eap) ui_call_suspend(); ui_flush(); - maketitle(); - resettitle(); // force updating the title - ui_refresh(); // may have resized window apply_autocmds(EVENT_VIMRESUME, NULL, NULL, false, NULL); } diff --git a/src/nvim/ui.c b/src/nvim/ui.c index 8c31032492..87a0271f3d 100644 --- a/src/nvim/ui.c +++ b/src/nvim/ui.c @@ -15,7 +15,7 @@ #include "nvim/api/ui.h" #include "nvim/ascii.h" #include "nvim/autocmd.h" -#include "nvim/buffer_defs.h" +#include "nvim/buffer.h" #include "nvim/cursor_shape.h" #include "nvim/drawscreen.h" #include "nvim/ex_getln.h" @@ -348,6 +348,7 @@ void ui_attach_impl(UI *ui, uint64_t chanid) uis[ui_count++] = ui; ui_refresh_options(); + resettitle(); for (UIExtension i = kUIGlobalCount; (int)i < kUIExtCount; i++) { ui_set_ext_option(ui, i, ui->ui_ext[i]); diff --git a/test/functional/ui/screen_basic_spec.lua b/test/functional/ui/screen_basic_spec.lua index b31e40d4ab..67e3b774b4 100644 --- a/test/functional/ui/screen_basic_spec.lua +++ b/test/functional/ui/screen_basic_spec.lua @@ -117,6 +117,12 @@ local function screen_tests(linegrid) screen:expect(function() eq(expected, screen.title) end) + screen:detach() + screen.title = nil + screen:attach() + screen:expect(function() + eq(expected, screen.title) + end) end) end) @@ -128,6 +134,12 @@ local function screen_tests(linegrid) screen:expect(function() eq(expected, screen.icon) end) + screen:detach() + screen.icon = nil + screen:attach() + screen:expect(function() + eq(expected, screen.icon) + end) end) end) |