mirror of
https://github.com/neovim/neovim.git
synced 2024-12-24 05:05:00 -07:00
refactor(aucmd_win): remove need to restore window layout
There are some places that mess with the window layout in preparation for moving a window to a different split (win_split_ins called with new_wp != NULL). This means the window layout can change slightly even if win_split_ins fails. This is why it was still needed to restore the window layout in aucmd_{prep,rest}buf even if we disallow win_split_ins from making aucmd_win non-floating by moving it into a split. We can just skip messing with the layout in such places if we're dealing with the aucmd_win.
This commit is contained in:
parent
2deffb5ea8
commit
430371da5b
@ -1147,7 +1147,6 @@ void aucmd_prepbuf(aco_save_T *aco, buf_T *buf)
|
||||
globaldir = NULL;
|
||||
|
||||
block_autocmds(); // We don't want BufEnter/WinEnter autocommands.
|
||||
make_snapshot(SNAP_AUCMD_IDX);
|
||||
if (need_append) {
|
||||
win_append(lastwin, aucmd_win);
|
||||
pmap_put(handle_T)(&window_handles, aucmd_win->handle, aucmd_win);
|
||||
@ -1213,8 +1212,6 @@ win_found:
|
||||
close_tabpage(curtab);
|
||||
}
|
||||
|
||||
restore_snapshot(SNAP_AUCMD_IDX, false);
|
||||
win_comp_pos(); // recompute window positions
|
||||
unblock_autocmds();
|
||||
|
||||
win_T *const save_curwin = win_find_by_handle(aco->save_curwin_handle);
|
||||
|
@ -4242,7 +4242,7 @@ static void win_move_into_split(win_T *wp, win_T *targetwin, int size, int flags
|
||||
int height = wp->w_height;
|
||||
win_T *oldwin = curwin;
|
||||
|
||||
if (wp == targetwin) {
|
||||
if (wp == targetwin || wp == aucmd_win) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1838,6 +1838,9 @@ static void win_totop(int size, int flags)
|
||||
beep_flush();
|
||||
return;
|
||||
}
|
||||
if (curwin == aucmd_win) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (curwin->w_floating) {
|
||||
ui_comp_remove_grid(&curwin->w_grid_alloc);
|
||||
|
Loading…
Reference in New Issue
Block a user