commit 39caf86e8aa0f6bd803b538b2d864f7dc94fc8dd
parent dc394b9641f92a5014147da58f5e14fd1681ec0f
Author: bfredl <bjorn.linse@gmail.com>
Date: Wed, 3 May 2023 15:49:25 +0200
Merge pull request #23428 from luukvbaal/gridclear
fix(tui): grid_clear properly clears the screen
Diffstat:
3 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c
@@ -977,7 +977,7 @@ void tui_grid_clear(TUIData *tui, Integer g)
UGrid *grid = &tui->grid;
ugrid_clear(grid);
kv_size(tui->invalid_regions) = 0;
- clear_region(tui, 0, grid->height, 0, grid->width, 0);
+ clear_region(tui, 0, tui->height, 0, tui->width, 0);
}
void tui_grid_cursor_goto(TUIData *tui, Integer grid, Integer row, Integer col)
diff --git a/test/functional/terminal/api_spec.lua b/test/functional/terminal/api_spec.lua
@@ -66,10 +66,10 @@ describe('api', function()
screen:expect([[
[tui] insert-mode |
- [socket 1] this is more t{4: }|
- han 25 columns {4: }|
- [socket 2] input{1: } {4: }|
- {4:~ }|
+ [socket 1] this is more t |
+ han 25 columns |
+ [socket 2] input{1: } |
+ {4:~ } |
{3:-- INSERT --} |
{3:-- TERMINAL --} |
]])
diff --git a/test/functional/terminal/tui_spec.lua b/test/functional/terminal/tui_spec.lua
@@ -2422,6 +2422,19 @@ describe("TUI as a client", function()
{3:-- TERMINAL --} |
]]}
+ -- grid smaller than containing terminal window is cleared properly
+ feed_data(":call setline(1,['a'->repeat(&columns)]->repeat(&lines))\n")
+ feed_data("0:set lines=2\n")
+ screen_server:expect{grid=[[
+ {1:a}aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa|
+ {5:[No Name] [+] }|
+ |
+ |
+ |
+ |
+ {3:-- TERMINAL --} |
+ ]]}
+
feed_data(":q!\n")
server_super:close()