0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.1.1400: using global pointer for tab-local popups is clumsy

Problem:    Using global pointer for tab-local popups is clumsy.
Solution:   Use the pointer in tabpage_T.
This commit is contained in:
Bram Moolenaar
2019-05-26 18:48:13 +02:00
parent ec58384afa
commit 9c27b1c6d1
6 changed files with 17 additions and 49 deletions

View File

@@ -5589,12 +5589,8 @@ garbage_collect(int testing)
for (wp = first_popupwin; wp != NULL; wp = wp->w_next)
abort = abort || set_ref_in_item(&wp->w_winvar.di_tv, copyID,
NULL, NULL);
for (wp = first_tab_popupwin; wp != NULL; wp = wp->w_next)
abort = abort || set_ref_in_item(&wp->w_winvar.di_tv, copyID,
NULL, NULL);
FOR_ALL_TABPAGES(tp)
if (tp != curtab)
for (wp = tp->tp_first_popupwin; wp != NULL; wp = wp->w_next)
for (wp = tp->tp_first_popupwin; wp != NULL; wp = wp->w_next)
abort = abort || set_ref_in_item(&wp->w_winvar.di_tv, copyID,
NULL, NULL);
#endif
@@ -8816,12 +8812,11 @@ find_win_by_nr(
if (nr >= LOWEST_WIN_ID)
{
#ifdef FEAT_TEXT_PROP
// popup windows are in a separate list
for (wp = (tp == NULL || tp == curtab)
? first_tab_popupwin : tp->tp_first_popupwin;
wp != NULL; wp = wp->w_next)
// check tab-local popup windows
for (wp = tp->tp_first_popupwin; wp != NULL; wp = wp->w_next)
if (wp->w_id == nr)
return wp;
// check global popup windows
for (wp = first_popupwin; wp != NULL; wp = wp->w_next)
if (wp->w_id == nr)
return wp;