mirror of
https://github.com/neovim/neovim.git
synced 2026-02-20 09:19:43 +10:00
Merge pull request #18774 from zeertzjq/float-height-width-fix
Fix some floating window height and width bugs
This commit is contained in:
@@ -5493,7 +5493,7 @@ static void win_redr_border(win_T *wp)
|
||||
int *attrs = wp->w_float_config.border_attr;
|
||||
|
||||
int *adj = wp->w_border_adj;
|
||||
int irow = wp->w_height_inner, icol = wp->w_width_inner;
|
||||
int irow = wp->w_height_inner + wp->w_winbar_height, icol = wp->w_width_inner;
|
||||
|
||||
if (adj[0]) {
|
||||
grid_puts_line_start(grid, 0);
|
||||
|
||||
@@ -783,8 +783,8 @@ void win_config_float(win_T *wp, FloatConfig fconfig)
|
||||
}
|
||||
|
||||
if (!ui_has(kUIMultigrid)) {
|
||||
wp->w_height = MIN(wp->w_height, Rows - 1 - win_extra_height(wp));
|
||||
wp->w_width = MIN(wp->w_width, Columns - win_extra_width(wp));
|
||||
wp->w_height = MIN(wp->w_height, Rows - 1 - win_border_height(wp));
|
||||
wp->w_width = MIN(wp->w_width, Columns - win_border_width(wp));
|
||||
}
|
||||
|
||||
win_set_inner_size(wp);
|
||||
@@ -1266,8 +1266,9 @@ int win_split_ins(int size, int flags, win_T *new_wp, int dir)
|
||||
} else if (wp->w_floating) {
|
||||
new_frame(wp);
|
||||
wp->w_floating = false;
|
||||
// non-floating window doesn't store float config.
|
||||
// non-floating window doesn't store float config or have a border.
|
||||
wp->w_float_config = FLOAT_CONFIG_INIT;
|
||||
memset(wp->w_border_adj, 0, sizeof(wp->w_border_adj));
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1940,7 +1941,7 @@ static void win_totop(int size, int flags)
|
||||
} else {
|
||||
// No longer a float, a non-multigrid UI shouldn't draw it as such
|
||||
ui_call_win_hide(curwin->w_grid_alloc.handle);
|
||||
win_free_grid(curwin, false);
|
||||
win_free_grid(curwin, true);
|
||||
}
|
||||
} else {
|
||||
// Remove the window and frame from the tree of frames.
|
||||
@@ -5178,8 +5179,7 @@ void win_free_grid(win_T *wp, bool reinit)
|
||||
}
|
||||
grid_free(&wp->w_grid_alloc);
|
||||
if (reinit) {
|
||||
// if a float is turned into a split and back into a float, the grid
|
||||
// data structure will be reused
|
||||
// if a float is turned into a split, the grid data structure will be reused
|
||||
memset(&wp->w_grid_alloc, 0, sizeof(wp->w_grid_alloc));
|
||||
}
|
||||
}
|
||||
@@ -6330,18 +6330,18 @@ void win_set_inner_size(win_T *wp)
|
||||
terminal_check_size(wp->w_buffer->terminal);
|
||||
}
|
||||
|
||||
wp->w_height_outer = (wp->w_height_inner + win_extra_height(wp));
|
||||
wp->w_width_outer = (wp->w_width_inner + win_extra_width(wp));
|
||||
wp->w_height_outer = (wp->w_height_inner + win_border_height(wp) + wp->w_winbar_height);
|
||||
wp->w_width_outer = (wp->w_width_inner + win_border_width(wp));
|
||||
wp->w_winrow_off = wp->w_border_adj[0] + wp->w_winbar_height;
|
||||
wp->w_wincol_off = wp->w_border_adj[3];
|
||||
}
|
||||
|
||||
static int win_extra_height(win_T *wp)
|
||||
static int win_border_height(win_T *wp)
|
||||
{
|
||||
return wp->w_border_adj[0] + wp->w_border_adj[2] + wp->w_winbar_height;
|
||||
return wp->w_border_adj[0] + wp->w_border_adj[2];
|
||||
}
|
||||
|
||||
static int win_extra_width(win_T *wp)
|
||||
static int win_border_width(win_T *wp)
|
||||
{
|
||||
return wp->w_border_adj[1] + wp->w_border_adj[3];
|
||||
}
|
||||
|
||||
@@ -4449,7 +4449,7 @@ describe('float window', function()
|
||||
## grid 4
|
||||
{1:y }|
|
||||
{2:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
^x |
|
||||
@@ -4487,7 +4487,7 @@ describe('float window', function()
|
||||
## grid 4
|
||||
{1:^y }|
|
||||
{2:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
x |
|
||||
@@ -4523,7 +4523,7 @@ describe('float window', function()
|
||||
## grid 4
|
||||
{1:y }|
|
||||
{2:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
^x |
|
||||
@@ -4563,7 +4563,7 @@ describe('float window', function()
|
||||
## grid 4
|
||||
{1:y }|
|
||||
{2:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
^x |
|
||||
@@ -4599,7 +4599,7 @@ describe('float window', function()
|
||||
## grid 4
|
||||
{1:y }|
|
||||
{2:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
^x |
|
||||
@@ -4637,7 +4637,7 @@ describe('float window', function()
|
||||
## grid 4
|
||||
{1:^y }|
|
||||
{2:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
x |
|
||||
@@ -4673,7 +4673,7 @@ describe('float window', function()
|
||||
## grid 4
|
||||
{1:y }|
|
||||
{2:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
^x |
|
||||
@@ -4711,7 +4711,7 @@ describe('float window', function()
|
||||
## grid 4
|
||||
{1:^y }|
|
||||
{2:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
meths.input_mouse('left', 'press', '', 0, 2, 5)
|
||||
screen:expect([[
|
||||
@@ -4748,7 +4748,7 @@ describe('float window', function()
|
||||
## grid 4
|
||||
{1:y }|
|
||||
{2:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
meths.input_mouse('left', 'press', '', 0, 0, 0)
|
||||
screen:expect([[
|
||||
@@ -4790,7 +4790,7 @@ describe('float window', function()
|
||||
## grid 4
|
||||
{1:y }|
|
||||
{2:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
meths.input_mouse('left', 'press', '', 0, 2, 5)
|
||||
screen:expect([[
|
||||
@@ -4827,7 +4827,7 @@ describe('float window', function()
|
||||
## grid 4
|
||||
{1:y }|
|
||||
{2:~ }|
|
||||
]], float_pos=expected_pos, unchanged=true}
|
||||
]], float_pos=expected_pos, unchanged=true}
|
||||
else
|
||||
meths.input_mouse('left', 'press', '', 0, 0, 0)
|
||||
screen:expect([[
|
||||
@@ -4842,7 +4842,6 @@ describe('float window', function()
|
||||
end
|
||||
end)
|
||||
|
||||
|
||||
it("j", function()
|
||||
feed("<c-w>ji") -- INSERT to trigger screen change
|
||||
if multigrid then
|
||||
@@ -4867,7 +4866,7 @@ describe('float window', function()
|
||||
## grid 4
|
||||
{1:y }|
|
||||
{2:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
^x |
|
||||
@@ -4903,7 +4902,7 @@ describe('float window', function()
|
||||
## grid 4
|
||||
{1:^y }|
|
||||
{2:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
x |
|
||||
@@ -4939,7 +4938,7 @@ describe('float window', function()
|
||||
## grid 4
|
||||
{1:y }|
|
||||
{2:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
^x |
|
||||
@@ -4978,7 +4977,7 @@ describe('float window', function()
|
||||
## grid 4
|
||||
{1:^y }|
|
||||
{2:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
x |
|
||||
@@ -5166,7 +5165,7 @@ describe('float window', function()
|
||||
## grid 4
|
||||
{1:^y }|
|
||||
{2:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
x |
|
||||
@@ -5347,7 +5346,7 @@ describe('float window', function()
|
||||
## grid 5
|
||||
^x |
|
||||
{0:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
^x |
|
||||
@@ -5382,7 +5381,7 @@ describe('float window', function()
|
||||
## grid 5
|
||||
x |
|
||||
{0:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
x |
|
||||
@@ -5417,7 +5416,7 @@ describe('float window', function()
|
||||
## grid 5
|
||||
x |
|
||||
{0:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
x |
|
||||
@@ -5453,7 +5452,7 @@ describe('float window', function()
|
||||
## grid 5
|
||||
^x |
|
||||
{0:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
^x |
|
||||
@@ -5490,7 +5489,7 @@ describe('float window', function()
|
||||
## grid 5
|
||||
^y |
|
||||
{0:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
^y |
|
||||
@@ -5525,7 +5524,7 @@ describe('float window', function()
|
||||
## grid 5
|
||||
y |
|
||||
{0:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
y |
|
||||
@@ -5560,7 +5559,7 @@ describe('float window', function()
|
||||
## grid 5
|
||||
y |
|
||||
{0:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
y |
|
||||
@@ -5597,7 +5596,7 @@ describe('float window', function()
|
||||
## grid 5
|
||||
^ |
|
||||
{0:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
^ |
|
||||
@@ -5634,7 +5633,7 @@ describe('float window', function()
|
||||
## grid 5
|
||||
^ |
|
||||
{0:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
^ |
|
||||
@@ -5677,7 +5676,7 @@ describe('float window', function()
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
^x {5:│}x |
|
||||
@@ -5720,17 +5719,17 @@ describe('float window', function()
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
^ {5:│}x |
|
||||
{0:~ }{5:│}{0:~ }|
|
||||
{0:~ }{1:y }{0: }|
|
||||
{0:~ }{2:~ }{0: }|
|
||||
{0:~ }{5:│}{0:~ }|
|
||||
{4:[No Name] }{5:[No Name] [+] }|
|
||||
:vnew |
|
||||
]])
|
||||
screen:expect([[
|
||||
^ {5:│}x |
|
||||
{0:~ }{5:│}{0:~ }|
|
||||
{0:~ }{1:y }{0: }|
|
||||
{0:~ }{2:~ }{0: }|
|
||||
{0:~ }{5:│}{0:~ }|
|
||||
{4:[No Name] }{5:[No Name] [+] }|
|
||||
:vnew |
|
||||
]])
|
||||
end
|
||||
end)
|
||||
|
||||
@@ -5763,7 +5762,7 @@ describe('float window', function()
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
^ {5:│}x |
|
||||
@@ -5833,7 +5832,7 @@ describe('float window', function()
|
||||
[4] = {{id = 1001}, "NW", 1, 2, 5, true},
|
||||
[5] = {{id = 1002}, "NW", 1, 4, 8, true}
|
||||
}}
|
||||
else
|
||||
else
|
||||
screen:expect([[
|
||||
x |
|
||||
{0:~ }|
|
||||
@@ -5871,7 +5870,7 @@ describe('float window', function()
|
||||
]], float_pos={
|
||||
[4] = {{id = 1001}, "NW", 1, 2, 5, true},
|
||||
}}
|
||||
else
|
||||
else
|
||||
screen:expect([[
|
||||
x |
|
||||
{0:~ }|
|
||||
@@ -5940,7 +5939,7 @@ describe('float window', function()
|
||||
{0:~ }|
|
||||
## grid 3
|
||||
|
|
||||
]]}
|
||||
]]}
|
||||
else
|
||||
screen:expect([[
|
||||
^x |
|
||||
@@ -5980,7 +5979,7 @@ describe('float window', function()
|
||||
## grid 4
|
||||
{1:y }|
|
||||
{2:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
x |
|
||||
@@ -6017,7 +6016,7 @@ describe('float window', function()
|
||||
## grid 4
|
||||
{1:^y }|
|
||||
{2:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
x |
|
||||
@@ -6087,7 +6086,7 @@ describe('float window', function()
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
]]}
|
||||
]]}
|
||||
else
|
||||
screen:expect([[
|
||||
^x |
|
||||
@@ -6124,7 +6123,7 @@ describe('float window', function()
|
||||
## grid 5
|
||||
x |
|
||||
{0:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
x |
|
||||
@@ -6161,7 +6160,7 @@ describe('float window', function()
|
||||
## grid 5
|
||||
x |
|
||||
{0:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
x |
|
||||
@@ -6195,7 +6194,7 @@ describe('float window', function()
|
||||
## grid 4
|
||||
^y |
|
||||
{0:~ }|
|
||||
]]}
|
||||
]]}
|
||||
else
|
||||
screen:expect([[
|
||||
x |
|
||||
@@ -6231,7 +6230,7 @@ describe('float window', function()
|
||||
## grid 4
|
||||
^y |
|
||||
{0:~ }|
|
||||
]], float_pos=expected_pos}
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
eq("UI doesn't support external windows",
|
||||
pcall_err(meths.win_set_config, 0, {external=true, width=30, height=2}))
|
||||
@@ -6261,6 +6260,78 @@ describe('float window', function()
|
||||
end
|
||||
end)
|
||||
|
||||
it('J (float with border)', function()
|
||||
meths.win_set_config(win, {relative='editor', width=20, height=2, row=2, col=5, border='single'})
|
||||
if multigrid then
|
||||
screen:expect{grid=[[
|
||||
## grid 1
|
||||
[2:----------------------------------------]|
|
||||
[2:----------------------------------------]|
|
||||
[2:----------------------------------------]|
|
||||
[2:----------------------------------------]|
|
||||
[2:----------------------------------------]|
|
||||
[2:----------------------------------------]|
|
||||
[3:----------------------------------------]|
|
||||
## grid 2
|
||||
^x |
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
## grid 3
|
||||
|
|
||||
## grid 4
|
||||
{5:┌────────────────────┐}|
|
||||
{5:│}{1:y }{5:│}|
|
||||
{5:│}{2:~ }{5:│}|
|
||||
{5:└────────────────────┘}|
|
||||
]], float_pos=expected_pos}
|
||||
else
|
||||
screen:expect([[
|
||||
^x |
|
||||
{0:~ }|
|
||||
{0:~ }{5:┌────────────────────┐}{0: }|
|
||||
{0:~ }{5:│}{1:y }{5:│}{0: }|
|
||||
{0:~ }{5:│}{2:~ }{5:│}{0: }|
|
||||
{0:~ }{5:└────────────────────┘}{0: }|
|
||||
|
|
||||
]])
|
||||
end
|
||||
|
||||
feed("<c-w>w<c-w>J")
|
||||
if multigrid then
|
||||
screen:expect{grid=[[
|
||||
## grid 1
|
||||
[2:----------------------------------------]|
|
||||
[2:----------------------------------------]|
|
||||
{5:[No Name] [+] }|
|
||||
[4:----------------------------------------]|
|
||||
[4:----------------------------------------]|
|
||||
{4:[No Name] [+] }|
|
||||
[3:----------------------------------------]|
|
||||
## grid 2
|
||||
x |
|
||||
{0:~ }|
|
||||
## grid 3
|
||||
|
|
||||
## grid 4
|
||||
^y |
|
||||
{0:~ }|
|
||||
]]}
|
||||
else
|
||||
screen:expect([[
|
||||
x |
|
||||
{0:~ }|
|
||||
{5:[No Name] [+] }|
|
||||
^y |
|
||||
{0:~ }|
|
||||
{4:[No Name] [+] }|
|
||||
|
|
||||
]])
|
||||
end
|
||||
end)
|
||||
|
||||
it('movements with nested split layout', function()
|
||||
command("set hidden")
|
||||
feed("<c-w>s<c-w>v<c-w>b<c-w>v")
|
||||
@@ -6654,6 +6725,7 @@ describe('float window', function()
|
||||
[2] = {win = {id = 1000}, topline = 0, botline = 2, curline = 0, curcol = 0, linecount = 1};
|
||||
[5] = {win = {id = 1002}, topline = 0, botline = 3, curline = 0, curcol = 0, linecount = 3};
|
||||
}}
|
||||
|
||||
meths.input_mouse('left', 'press', '', 5, 0, 0)
|
||||
screen:expect{grid=[[
|
||||
## grid 1
|
||||
@@ -6683,6 +6755,7 @@ describe('float window', function()
|
||||
[2] = {win = {id = 1000}, topline = 0, botline = 2, curline = 0, curcol = 0, linecount = 1};
|
||||
[5] = {win = {id = 1002}, topline = 0, botline = 3, curline = 0, curcol = 0, linecount = 3};
|
||||
}}
|
||||
|
||||
meths.input_mouse('left', 'drag', '', 5, 1, 2)
|
||||
screen:expect{grid=[[
|
||||
## grid 1
|
||||
@@ -6782,6 +6855,7 @@ describe('float window', function()
|
||||
[2] = {win = {id = 1000}, topline = 0, botline = 2, curline = 0, curcol = 0, linecount = 1};
|
||||
[5] = {win = {id = 1002}, topline = 0, botline = 3, curline = 0, curcol = 0, linecount = 3};
|
||||
}}
|
||||
|
||||
meths.input_mouse('left', 'press', '', 5, 1, 1)
|
||||
screen:expect{grid=[[
|
||||
## grid 1
|
||||
@@ -6813,6 +6887,7 @@ describe('float window', function()
|
||||
[2] = {win = {id = 1000}, topline = 0, botline = 2, curline = 0, curcol = 0, linecount = 1};
|
||||
[5] = {win = {id = 1002}, topline = 0, botline = 3, curline = 0, curcol = 0, linecount = 3};
|
||||
}}
|
||||
|
||||
meths.input_mouse('left', 'drag', '', 5, 2, 3)
|
||||
screen:expect{grid=[[
|
||||
## grid 1
|
||||
@@ -6914,6 +6989,7 @@ describe('float window', function()
|
||||
[2] = {win = {id = 1000}, topline = 0, botline = 2, curline = 0, curcol = 0, linecount = 1};
|
||||
[5] = {win = {id = 1002}, topline = 0, botline = 3, curline = 0, curcol = 0, linecount = 3};
|
||||
}}
|
||||
|
||||
meths.input_mouse('left', 'press', '', 5, 1, 0)
|
||||
screen:expect{grid=[[
|
||||
## grid 1
|
||||
@@ -6944,6 +7020,7 @@ describe('float window', function()
|
||||
[2] = {win = {id = 1000}, topline = 0, botline = 2, curline = 0, curcol = 0, linecount = 1};
|
||||
[5] = {win = {id = 1002}, topline = 0, botline = 3, curline = 0, curcol = 0, linecount = 3};
|
||||
}}
|
||||
|
||||
meths.input_mouse('left', 'drag', '', 5, 2, 2)
|
||||
screen:expect{grid=[[
|
||||
## grid 1
|
||||
@@ -7009,6 +7086,123 @@ describe('float window', function()
|
||||
end
|
||||
end)
|
||||
|
||||
it('left drag changes visual selection if float window is turned into a split', function()
|
||||
local buf = meths.create_buf(false,false)
|
||||
meths.buf_set_lines(buf, 0, -1, true, {'foo', 'bar', 'baz'})
|
||||
meths.open_win(buf, true, {relative='editor', width=20, height=3, row=2, col=5})
|
||||
command('wincmd L')
|
||||
if multigrid then
|
||||
screen:expect([[
|
||||
## grid 1
|
||||
[2:-------------------]{5:│}[5:--------------------]|
|
||||
[2:-------------------]{5:│}[5:--------------------]|
|
||||
[2:-------------------]{5:│}[5:--------------------]|
|
||||
[2:-------------------]{5:│}[5:--------------------]|
|
||||
[2:-------------------]{5:│}[5:--------------------]|
|
||||
{5:[No Name] }{4:[No Name] [+] }|
|
||||
[3:----------------------------------------]|
|
||||
## grid 2
|
||||
|
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
## grid 3
|
||||
|
|
||||
## grid 5
|
||||
^foo |
|
||||
bar |
|
||||
baz |
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
]])
|
||||
|
||||
meths.input_mouse('left', 'press', '', 5, 2, 2)
|
||||
screen:expect([[
|
||||
## grid 1
|
||||
[2:-------------------]{5:│}[5:--------------------]|
|
||||
[2:-------------------]{5:│}[5:--------------------]|
|
||||
[2:-------------------]{5:│}[5:--------------------]|
|
||||
[2:-------------------]{5:│}[5:--------------------]|
|
||||
[2:-------------------]{5:│}[5:--------------------]|
|
||||
{5:[No Name] }{4:[No Name] [+] }|
|
||||
[3:----------------------------------------]|
|
||||
## grid 2
|
||||
|
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
## grid 3
|
||||
|
|
||||
## grid 5
|
||||
foo |
|
||||
bar |
|
||||
ba^z |
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
]])
|
||||
|
||||
meths.input_mouse('left', 'drag', '', 5, 1, 1)
|
||||
screen:expect([[
|
||||
## grid 1
|
||||
[2:-------------------]{5:│}[5:--------------------]|
|
||||
[2:-------------------]{5:│}[5:--------------------]|
|
||||
[2:-------------------]{5:│}[5:--------------------]|
|
||||
[2:-------------------]{5:│}[5:--------------------]|
|
||||
[2:-------------------]{5:│}[5:--------------------]|
|
||||
{5:[No Name] }{4:[No Name] [+] }|
|
||||
[3:----------------------------------------]|
|
||||
## grid 2
|
||||
|
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
## grid 3
|
||||
{3:-- VISUAL --} |
|
||||
## grid 5
|
||||
foo |
|
||||
b^a{27:r} |
|
||||
{27:baz} |
|
||||
{0:~ }|
|
||||
{0:~ }|
|
||||
]])
|
||||
else
|
||||
screen:expect([[
|
||||
{5:│}^foo |
|
||||
{0:~ }{5:│}bar |
|
||||
{0:~ }{5:│}baz |
|
||||
{0:~ }{5:│}{0:~ }|
|
||||
{0:~ }{5:│}{0:~ }|
|
||||
{5:[No Name] }{4:[No Name] [+] }|
|
||||
|
|
||||
]])
|
||||
|
||||
meths.input_mouse('left', 'press', '', 0, 2, 22)
|
||||
screen:expect([[
|
||||
{5:│}foo |
|
||||
{0:~ }{5:│}bar |
|
||||
{0:~ }{5:│}ba^z |
|
||||
{0:~ }{5:│}{0:~ }|
|
||||
{0:~ }{5:│}{0:~ }|
|
||||
{5:[No Name] }{4:[No Name] [+] }|
|
||||
|
|
||||
]])
|
||||
|
||||
meths.input_mouse('left', 'drag', '', 0, 1, 21)
|
||||
screen:expect([[
|
||||
{5:│}foo |
|
||||
{0:~ }{5:│}b^a{27:r} |
|
||||
{0:~ }{5:│}{27:baz} |
|
||||
{0:~ }{5:│}{0:~ }|
|
||||
{0:~ }{5:│}{0:~ }|
|
||||
{5:[No Name] }{4:[No Name] [+] }|
|
||||
{3:-- VISUAL --} |
|
||||
]])
|
||||
end
|
||||
end)
|
||||
|
||||
it("'winblend' option", function()
|
||||
screen:try_resize(50,9)
|
||||
screen:set_default_attr_ids({
|
||||
@@ -7895,6 +8089,53 @@ describe('float window', function()
|
||||
|
|
||||
]]}
|
||||
end
|
||||
|
||||
-- resize and add a border
|
||||
meths.win_set_config(win1, {relative='editor', width=15, height=4, row=0, col=4, border = 'single'})
|
||||
|
||||
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 4
|
||||
{5:┌───────────────┐}|
|
||||
{5:│}{3:floaty bar }{5:│}|
|
||||
{5:│}{1: }{5:│}|
|
||||
{5:│}{2:~ }{5:│}|
|
||||
{5:│}{2:~ }{5:│}|
|
||||
{5:└───────────────┘}|
|
||||
]], float_pos={
|
||||
[4] = {{id = 1001}, "NW", 1, 0, 4, true, 50};
|
||||
}, win_viewport={
|
||||
[2] = {win = {id = 1000}, topline = 0, botline = 2, curline = 0, curcol = 0, linecount = 1};
|
||||
[4] = {win = {id = 1001}, topline = 0, botline = 2, curline = 0, curcol = 0, linecount = 1};
|
||||
}}
|
||||
else
|
||||
screen:expect{grid=[[
|
||||
^ {5:┌───────────────┐} |
|
||||
{0:~ }{5:│}{3:floaty bar }{5:│}{0: }|
|
||||
{0:~ }{5:│}{1: }{5:│}{0: }|
|
||||
{0:~ }{5:│}{2:~ }{5:│}{0: }|
|
||||
{0:~ }{5:│}{2:~ }{5:│}{0: }|
|
||||
{0:~ }{5:└───────────────┘}{0: }|
|
||||
|
|
||||
]]}
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user