mirror of
https://github.com/neovim/neovim.git
synced 2025-10-17 07:16:09 +00:00
Merge #8744 from janlazo/vim-8.0.0890
This commit is contained in:
@@ -2296,6 +2296,9 @@ winframe_remove (
|
||||
if (frp2->fr_win != NULL)
|
||||
frp2->fr_win->w_frame = frp2->fr_parent;
|
||||
frp = frp2->fr_parent;
|
||||
if (topframe->fr_child == frp2) {
|
||||
topframe->fr_child = frp;
|
||||
}
|
||||
xfree(frp2);
|
||||
|
||||
frp2 = frp->fr_parent;
|
||||
@@ -2317,6 +2320,9 @@ winframe_remove (
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (topframe->fr_child == frp) {
|
||||
topframe->fr_child = frp2;
|
||||
}
|
||||
xfree(frp);
|
||||
}
|
||||
}
|
||||
@@ -2959,7 +2965,6 @@ static int win_alloc_firstwin(win_T *oldwin)
|
||||
topframe = curwin->w_frame;
|
||||
topframe->fr_width = Columns;
|
||||
topframe->fr_height = Rows - p_ch;
|
||||
topframe->fr_win = curwin;
|
||||
|
||||
return OK;
|
||||
}
|
||||
@@ -3970,18 +3975,20 @@ win_remove (
|
||||
tabpage_T *tp /* tab page "win" is in, NULL for current */
|
||||
)
|
||||
{
|
||||
if (wp->w_prev != NULL)
|
||||
if (wp->w_prev != NULL) {
|
||||
wp->w_prev->w_next = wp->w_next;
|
||||
else if (tp == NULL)
|
||||
firstwin = wp->w_next;
|
||||
else
|
||||
} else if (tp == NULL) {
|
||||
firstwin = curtab->tp_firstwin = wp->w_next;
|
||||
} else {
|
||||
tp->tp_firstwin = wp->w_next;
|
||||
if (wp->w_next != NULL)
|
||||
}
|
||||
if (wp->w_next != NULL) {
|
||||
wp->w_next->w_prev = wp->w_prev;
|
||||
else if (tp == NULL)
|
||||
lastwin = wp->w_prev;
|
||||
else
|
||||
} else if (tp == NULL) {
|
||||
lastwin = curtab->tp_lastwin = wp->w_prev;
|
||||
} else {
|
||||
tp->tp_lastwin = wp->w_prev;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -4015,12 +4022,18 @@ static void frame_insert(frame_T *before, frame_T *frp)
|
||||
*/
|
||||
static void frame_remove(frame_T *frp)
|
||||
{
|
||||
if (frp->fr_prev != NULL)
|
||||
if (frp->fr_prev != NULL) {
|
||||
frp->fr_prev->fr_next = frp->fr_next;
|
||||
else
|
||||
} else {
|
||||
frp->fr_parent->fr_child = frp->fr_next;
|
||||
if (frp->fr_next != NULL)
|
||||
// special case: topframe->fr_child == frp
|
||||
if (topframe->fr_child == frp) {
|
||||
topframe->fr_child = frp->fr_next;
|
||||
}
|
||||
}
|
||||
if (frp->fr_next != NULL) {
|
||||
frp->fr_next->fr_prev = frp->fr_prev;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5489,12 +5502,10 @@ int switch_win(win_T **save_curwin, tabpage_T **save_curtab, win_T *win, tabpage
|
||||
return OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* Restore current tabpage and window saved by switch_win(), if still valid.
|
||||
* When "no_display" is TRUE the display won't be affected, no redraw is
|
||||
* triggered.
|
||||
*/
|
||||
void restore_win(win_T *save_curwin, tabpage_T *save_curtab, int no_display)
|
||||
// Restore current tabpage and window saved by switch_win(), if still valid.
|
||||
// When "no_display" is true the display won't be affected, no redraw is
|
||||
// triggered.
|
||||
void restore_win(win_T *save_curwin, tabpage_T *save_curtab, bool no_display)
|
||||
{
|
||||
if (save_curtab != NULL && valid_tabpage(save_curtab)) {
|
||||
if (no_display) {
|
||||
|
Reference in New Issue
Block a user