The group name "popupmenu" is used by popup windows where 'cursorline' is set.
+To place a sign in a popup window the group name must start with "PopUp".
+Other signs will not show in a popup window. The group name "PopUpMenu" is
+used by popup windows where 'cursorline' is set.
+
*sign-priority*
Each placed sign is assigned a priority value. When multiple signs are placed
on the same line, the attributes of the sign with the highest priority is used
int sign_id = 0;
char_u *sign_name = popup_get_sign_name(wp);
- buf_delete_signs(wp->w_buffer, (char_u *)"popupmenu");
+ buf_delete_signs(wp->w_buffer, (char_u *)"PopUpMenu");
if ((wp->w_popup_flags & POPF_CURSORLINE) != 0)
{
sign_define_by_name(sign_name, NULL, (char_u *)linehl, NULL, NULL);
}
- sign_place(&sign_id, (char_u *)"popupmenu", sign_name,
+ sign_place(&sign_id, (char_u *)"PopUpMenu", sign_name,
wp->w_buffer, wp->w_cursor.lnum, SIGN_DEF_PRIO);
redraw_win_later(wp, NOT_VALID);
}
return ((group != NULL && STRCMP(group, "*") == 0)
|| (group == NULL && sign->se_group == NULL)
|| (group != NULL && sign->se_group != NULL
- && STRCMP(group, sign->se_group->sg_name) == 0));
+ && STRCMP(group, sign->se_group->sg_name) == 0));
+}
+
+/*
+ * Return TRUE if "sign" is to be displayed in window "wp".
+ * If the group name starts with "PopUp" it only shows in a popup window.
+ */
+ static int
+sign_group_for_window(sign_entry_T *sign, win_T *wp)
+{
+ int for_popup = sign->se_group != NULL
+ && STRNCMP("PopUp", sign->se_group->sg_name, 5) == 0;
+
+ return WIN_IS_POPUP(wp) ? for_popup : !for_popup;
}
/*
if (sign->se_lnum == lnum
# ifdef FEAT_TEXT_PROP
- && sign_in_group(sign, (char_u *)"popupmenu")
- == (WIN_IS_POPUP(wp) ? TRUE : FALSE)
+ && sign_group_for_window(sign, wp)
# endif
)
{
sign_entry_T *sign = wp->w_buffer->b_signlist;
# ifdef FEAT_TEXT_PROP
- while (sign != NULL && sign_in_group(sign, (char_u *)"popupmenu")
- == (WIN_IS_POPUP(wp) ? FALSE : TRUE))
+ while (sign != NULL && !sign_group_for_window(sign, wp))
sign = sign->se_next;
# endif
return sign;
--- /dev/null
+|>+0#e000002#ffffff0@1>0+0#ffffff16#ff404010| @71
+| +0#0000e05#a8a8a8255@1|1+0#0000000#ffffff0| @71
+| +0#0000e05#a8a8a8255@1|2+0#0000000#ffffff0| @71
+| +0#0000e05#a8a8a8255@1|3+0#0000000#ffffff0| @23|#+0#ffffff16#ff404010|!|h+0#0000001#ffff4012|e|l@1|o| @12| +0#0000000#ffffff0@27
+| +0#0000e05#a8a8a8255@1|4+0#0000000#ffffff0| @23| +0#0000e05#a8a8a8255@1|b+0#0000001#ffd7ff255|r|i|g|h|t| @11| +0#0000000#ffffff0@27
+| +0#0000e05#a8a8a8255@1|5+0#0000000#ffffff0| @23| +0#0000e05#a8a8a8255@1|w+0#0000001#ffd7ff255|o|r|l|d| @12| +0#0000000#ffffff0@27
+| +0#0000e05#a8a8a8255@1|6+0#0000000#ffffff0| @71
+| +0#0000e05#a8a8a8255@1|7+0#0000000#ffffff0| @71
+| +0#0000e05#a8a8a8255@1|8+0#0000000#ffffff0| @71
+@57|1|,|1| @10|T|o|p|
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 2362,
/**/
2361,
/**/