summaryrefslogtreecommitdiff
path: root/src/window.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-11-16 20:47:31 +0100
committerBram Moolenaar <Bram@vim.org>2020-11-16 20:47:31 +0100
commit8adc8d9b73121b647476a33d91d31d25e1c2d987 (patch)
tree16e0e7e503690996d9214a510632b76c0acf8cb3 /src/window.c
parent193f6201b4d5c76f8dc1faa1dcf369575d93fe3a (diff)
downloadvim-git-8adc8d9b73121b647476a33d91d31d25e1c2d987.tar.gz
patch 8.2.1997: window changes when using bufload() while in a terminal popupv8.2.1997
Problem: Window changes when using bufload() while in a terminal popup. Solution: When searching for a window by ID also find a popup window. (closes #7307)
Diffstat (limited to 'src/window.c')
-rw-r--r--src/window.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/window.c b/src/window.c
index 501ea846a..1134d0a6c 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1462,6 +1462,7 @@ win_valid(win_T *win)
/*
* Find window "id" in the current tab page.
+ * Also find popup windows.
* Return NULL if not found.
*/
win_T *
@@ -1472,6 +1473,14 @@ win_find_by_id(int id)
FOR_ALL_WINDOWS(wp)
if (wp->w_id == id)
return wp;
+#ifdef FEAT_PROP_POPUP
+ FOR_ALL_POPUPWINS(wp)
+ if (wp->w_id == id)
+ return wp;
+ FOR_ALL_POPUPWINS_IN_TAB(curtab, wp)
+ if (wp->w_id == id)
+ return wp;
+#endif
return NULL;
}