aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/screen.c4
-rw-r--r--src/nvim/window.c7
-rw-r--r--test/functional/ui/float_spec.lua43
3 files changed, 51 insertions, 3 deletions
diff --git a/src/nvim/screen.c b/src/nvim/screen.c
index d14e0c83a6..07cd8549a6 100644
--- a/src/nvim/screen.c
+++ b/src/nvim/screen.c
@@ -5655,7 +5655,9 @@ static void win_redr_border(win_T *wp)
int ic = (i == 0 && !adj[3] && chars[6][0]) ? 6 : 5;
grid_put_schar(grid, irow+adj[0], i+adj[3], chars[ic], attrs[ic]);
}
- grid_put_schar(grid, irow+adj[0], icol+adj[3], chars[4], attrs[4]);
+ if (adj[1]) {
+ grid_put_schar(grid, irow+adj[0], icol+adj[3], chars[4], attrs[4]);
+ }
grid_puts_line_flush(false);
}
}
diff --git a/src/nvim/window.c b/src/nvim/window.c
index be49d3e574..ff5b39eb84 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -723,8 +723,11 @@ void win_config_float(win_T *wp, FloatConfig fconfig)
bool has_border = wp->w_floating && wp->w_float_config.border;
for (int i = 0; i < 4; i++) {
- wp->w_border_adj[i] =
- has_border && wp->w_float_config.border_chars[2 * i+1][0];
+ int new_adj = has_border && wp->w_float_config.border_chars[2 * i + 1][0];
+ if (new_adj != wp->w_border_adj[i]) {
+ change_border = true;
+ wp->w_border_adj[i] = new_adj;
+ }
}
if (!ui_has(kUIMultigrid)) {
diff --git a/test/functional/ui/float_spec.lua b/test/functional/ui/float_spec.lua
index 6c2c4b398a..b6d80616b4 100644
--- a/test/functional/ui/float_spec.lua
+++ b/test/functional/ui/float_spec.lua
@@ -1194,6 +1194,49 @@ describe('float window', function()
]]}
end
+ meths.win_set_config(win, {border={"", "_", "", "", "", "-", "", ""}})
+ if multigrid then
+ screen:expect{grid=[[
+ ## grid 1
+ [2:----------------------------------------]|
+ [2:----------------------------------------]|
+ [2:----------------------------------------]|
+ [2:----------------------------------------]|
+ [2:----------------------------------------]|
+ [2:----------------------------------------]|
+ [3:----------------------------------------]|
+ ## grid 2
+ ^ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ ## grid 3
+ |
+ ## grid 5
+ {5:_________}|
+ {1: halloj! }|
+ {1: BORDAA }|
+ {5:---------}|
+ ]], float_pos={
+ [5] = { { id = 1002 }, "NW", 1, 2, 5, true }
+ }, win_viewport={
+ [2] = {win = {id = 1000}, topline = 0, botline = 2, curline = 0, curcol = 0, linecount = 1};
+ [5] = {win = {id = 1002}, topline = 0, botline = 2, curline = 0, curcol = 0, linecount = 2};
+ }}
+ else
+ screen:expect{grid=[[
+ ^ |
+ {0:~ }|
+ {0:~ }{5:_________}{0: }|
+ {0:~ }{1: halloj! }{0: }|
+ {0:~ }{1: BORDAA }{0: }|
+ {0:~ }{5:---------}{0: }|
+ |
+ ]]}
+ end
+
insert [[
neeed some dummy
background text