aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2023-05-06 11:48:33 +0200
committerGitHub <noreply@github.com>2023-05-06 11:48:33 +0200
commitd94db802277bd55dd14d59f88fcc935ee55820e2 (patch)
tree1263173da1f4b7c88e15348fa661b6ccac7d78e3
parent5abba97d77f2a5c4a47a68cad4063b4de303b95c (diff)
parent0f1b511f2302324684c3ed9ff586f51c2129694d (diff)
downloadrneovim-d94db802277bd55dd14d59f88fcc935ee55820e2.tar.gz
rneovim-d94db802277bd55dd14d59f88fcc935ee55820e2.tar.bz2
rneovim-d94db802277bd55dd14d59f88fcc935ee55820e2.zip
Merge pull request #23415 from zeertzjq/sigwinch-redraw
fix(tui): redraw on SIGWINCH even if size didn't change
-rw-r--r--src/nvim/tui/tui.c9
-rw-r--r--test/functional/terminal/tui_spec.lua23
2 files changed, 27 insertions, 5 deletions
diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c
index 0d661d2b58..2de1467511 100644
--- a/src/nvim/tui/tui.c
+++ b/src/nvim/tui/tui.c
@@ -1529,12 +1529,11 @@ void tui_guess_size(TUIData *tui)
height = DFLT_ROWS;
}
- if (tui->width != width || tui->height != height) {
- tui->width = width;
- tui->height = height;
+ tui->width = width;
+ tui->height = height;
- ui_client_set_size(width, height);
- }
+ // Redraw on SIGWINCH event if size didn't change. #23411
+ ui_client_set_size(width, height);
}
static void unibi_goto(TUIData *tui, int row, int col)
diff --git a/test/functional/terminal/tui_spec.lua b/test/functional/terminal/tui_spec.lua
index 5fd3467949..b69867af89 100644
--- a/test/functional/terminal/tui_spec.lua
+++ b/test/functional/terminal/tui_spec.lua
@@ -1565,6 +1565,29 @@ describe('TUI', function()
{5:-- TERMINAL --} |
]])
end)
+
+ it('redraws on SIGWINCH even if terminal size is unchanged #23411', function()
+ child_session:request('nvim_echo', {{'foo'}}, false, {})
+ screen:expect([[
+ {1: } |
+ {4:~ }|
+ {4:~ }|
+ {4:~ }|
+ {5:[No Name] }|
+ foo |
+ {3:-- TERMINAL --} |
+ ]])
+ exec_lua([[vim.loop.kill(vim.fn.jobpid(vim.bo.channel), 'sigwinch')]])
+ screen:expect([[
+ {1: } |
+ {4:~ }|
+ {4:~ }|
+ {4:~ }|
+ {5:[No Name] }|
+ |
+ {3:-- TERMINAL --} |
+ ]])
+ end)
end)
describe('TUI', function()