1
0
forked from aniani/vim

patch 8.1.1391: no popup window support

Problem:    No popup window support.
Solution:   Add initial code for popup windows.  Add the 'wincolor' option.
This commit is contained in:
Bram Moolenaar
2019-05-25 19:51:39 +02:00
parent 8f46e4c4bd
commit 4d784b21d1
31 changed files with 812 additions and 171 deletions

View File

@@ -1349,7 +1349,7 @@ ex_doautoall(exarg_T *eap)
*/
FOR_ALL_BUFFERS(buf)
{
if (buf->b_ml.ml_mfp != NULL)
if (buf->b_ml.ml_mfp != NULL && !bt_popup(buf))
{
// find a window for this buffer and save some values
aucmd_prepbuf(&aco, buf);
@@ -1423,7 +1423,7 @@ aucmd_prepbuf(
// back to using the current window.
if (win == NULL && aucmd_win == NULL)
{
win_alloc_aucmd_win();
aucmd_win = win_alloc_popup_win();
if (aucmd_win == NULL)
win = curwin;
}
@@ -1451,20 +1451,12 @@ aucmd_prepbuf(
// unexpected results.
aco->use_aucmd_win = TRUE;
aucmd_win_used = TRUE;
aucmd_win->w_buffer = buf;
#if defined(FEAT_SYN_HL) || defined(FEAT_SPELL)
aucmd_win->w_s = &buf->b_s;
#endif
++buf->b_nwindows;
win_init_empty(aucmd_win); // set cursor and topline to safe values
// Make sure w_localdir and globaldir are NULL to avoid a chdir() in
// win_enter_ext().
VIM_CLEAR(aucmd_win->w_localdir);
win_init_popup_win(aucmd_win, buf);
aco->globaldir = globaldir;
globaldir = NULL;
// Split the current window, put the aucmd_win in the upper half.
// We don't want the BufEnter or WinEnter autocommands.
block_autocmds();
@@ -1620,6 +1612,8 @@ apply_autocmds(
int force, // when TRUE, ignore autocmd_busy
buf_T *buf) // buffer for <abuf>
{
if (bt_popup(buf))
return FALSE;
return apply_autocmds_group(event, fname, fname_io, force,
AUGROUP_ALL, buf, NULL);
}