mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 18:55:14 -07:00
fix(unhide): close floating windows first (#25318)
This commit is contained in:
parent
c88bb658ce
commit
c0a29931e2
@ -3616,8 +3616,11 @@ void ex_buffer_all(exarg_T *eap)
|
|||||||
}
|
}
|
||||||
while (true) {
|
while (true) {
|
||||||
tpnext = curtab->tp_next;
|
tpnext = curtab->tp_next;
|
||||||
for (wp = firstwin; wp != NULL; wp = wpnext) {
|
// Try to close floating windows first
|
||||||
wpnext = wp->w_next;
|
for (wp = lastwin->w_floating ? lastwin : firstwin; wp != NULL; wp = wpnext) {
|
||||||
|
wpnext = wp->w_floating
|
||||||
|
? wp->w_prev->w_floating ? wp->w_prev : firstwin
|
||||||
|
: (wp->w_next == NULL || wp->w_next->w_floating) ? NULL : wp->w_next;
|
||||||
if ((wp->w_buffer->b_nwindows > 1
|
if ((wp->w_buffer->b_nwindows > 1
|
||||||
|| ((cmdmod.cmod_split & WSP_VERT)
|
|| ((cmdmod.cmod_split & WSP_VERT)
|
||||||
? wp->w_height + wp->w_hsep_height + wp->w_status_height < Rows - p_ch
|
? wp->w_height + wp->w_hsep_height + wp->w_status_height < Rows - p_ch
|
||||||
@ -3632,7 +3635,7 @@ void ex_buffer_all(exarg_T *eap)
|
|||||||
}
|
}
|
||||||
// Just in case an autocommand does something strange with
|
// Just in case an autocommand does something strange with
|
||||||
// windows: start all over...
|
// windows: start all over...
|
||||||
wpnext = firstwin;
|
wpnext = lastwin->w_floating ? lastwin : firstwin;
|
||||||
tpnext = first_tabpage;
|
tpnext = first_tabpage;
|
||||||
open_wins = 0;
|
open_wins = 0;
|
||||||
} else {
|
} else {
|
||||||
|
@ -522,6 +522,16 @@ describe('float window', function()
|
|||||||
eq(5, meths.get_option_value('scroll', {win=float_win.id}))
|
eq(5, meths.get_option_value('scroll', {win=float_win.id}))
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it(':unhide works when there are floating windows #17797', function()
|
||||||
|
local float_opts = {relative = 'editor', row = 1, col = 1, width = 10, height = 10}
|
||||||
|
local w0 = curwin()
|
||||||
|
meths.open_win(0, false, float_opts)
|
||||||
|
meths.open_win(0, false, float_opts)
|
||||||
|
eq(3, #meths.list_wins())
|
||||||
|
command('unhide')
|
||||||
|
eq({ w0 }, meths.list_wins())
|
||||||
|
end)
|
||||||
|
|
||||||
describe('with only one tabpage,', function()
|
describe('with only one tabpage,', function()
|
||||||
local float_opts = {relative = 'editor', row = 1, col = 1, width = 1, height = 1}
|
local float_opts = {relative = 'editor', row = 1, col = 1, width = 1, height = 1}
|
||||||
local old_buf, old_win
|
local old_buf, old_win
|
||||||
|
Loading…
Reference in New Issue
Block a user