neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit a92d78d201e53a4b2fb7b2f811a3f316678a8e6a
parent ad62bd471da43e3efa2f9f8981e91b9af92901c0
Author: bfredl <bjorn.linse@gmail.com>
Date:   Fri, 26 May 2023 11:29:56 +0200

Merge pull request #23583 from zeertzjq/ui-attach-title

fix(ui-ext): send title to newly-attached UI
Diffstat:
Msrc/nvim/buffer.c | 1-
Msrc/nvim/ex_docmd.c | 3---
Msrc/nvim/ui.c | 3++-
Mtest/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 @@ -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 @@ -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 @@ -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 @@ -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)