patch 8.1.2307: positioning popup doesn't work for buffer-local textprop
Problem: Positioning popup doesn't work for buffer-local textprop.
Solution: Make it work. (closes #5225)
diff --git a/src/popupwin.c b/src/popupwin.c
index 48c017f..efcc395 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -452,24 +452,22 @@
wp->w_popup_prop_type = 0;
if (*str != NUL)
{
- nr = find_prop_type_id(str, wp->w_buffer);
+ wp->w_popup_prop_win = curwin;
+ di = dict_find(d, (char_u *)"textpropwin", -1);
+ if (di != NULL)
+ {
+ wp->w_popup_prop_win = find_win_by_nr_or_id(&di->di_tv);
+ if (!win_valid(wp->w_popup_prop_win))
+ wp->w_popup_prop_win = curwin;
+ }
+
+ nr = find_prop_type_id(str, wp->w_popup_prop_win->w_buffer);
if (nr <= 0)
nr = find_prop_type_id(str, NULL);
if (nr <= 0)
semsg(_(e_invarg2), str);
else
- {
wp->w_popup_prop_type = nr;
- wp->w_popup_prop_win = curwin;
-
- di = dict_find(d, (char_u *)"textpropwin", -1);
- if (di != NULL)
- {
- wp->w_popup_prop_win = find_win_by_nr_or_id(&di->di_tv);
- if (win_valid(wp->w_popup_prop_win))
- wp->w_popup_prop_win = curwin;
- }
- }
}
}