patch 8.1.1538: cannot specify highlighting for notifications
Problem: Cannot specify highlighting for notifications.
Solution: Use the PopupNotification group if it exists. Add a minimal width
to notifications.
diff --git a/src/popupwin.c b/src/popupwin.c
index 594fca8..aeed2e7 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -258,7 +258,9 @@
dictitem_T *di;
int i;
- wp->w_minwidth = dict_get_number(dict, (char_u *)"minwidth");
+ di = dict_find(dict, (char_u *)"minwidth", -1);
+ if (di != NULL)
+ wp->w_minwidth = dict_get_number(dict, (char_u *)"minwidth");
wp->w_minheight = dict_get_number(dict, (char_u *)"minheight");
wp->w_maxwidth = dict_get_number(dict, (char_u *)"maxwidth");
wp->w_maxheight = dict_get_number(dict, (char_u *)"maxheight");
@@ -856,13 +858,17 @@
wp->w_wantcol = 10;
wp->w_zindex = POPUPWIN_NOTIFICATION_ZINDEX;
+ wp->w_minwidth = 20;
+ wp->w_popup_drag = 1;
for (i = 0; i < 4; ++i)
wp->w_popup_border[i] = 1;
wp->w_popup_padding[1] = 1;
wp->w_popup_padding[3] = 1;
+
+ nr = syn_name2id((char_u *)"PopupNotification");
set_string_option_direct_in_win(wp, (char_u *)"wincolor", -1,
- (char_u *)"WarningMsg", OPT_FREE|OPT_LOCAL, 0);
- wp->w_popup_drag = 1;
+ (char_u *)(nr == 0 ? "WarningMsg" : "PopupNotification"),
+ OPT_FREE|OPT_LOCAL, 0);
}
// Deal with options.
diff --git a/src/testdir/dumps/Test_popupwin_notify_01.dump b/src/testdir/dumps/Test_popupwin_notify_01.dump
index 2ecd5ee..bad62f6 100644
--- a/src/testdir/dumps/Test_popupwin_notify_01.dump
+++ b/src/testdir/dumps/Test_popupwin_notify_01.dump
@@ -1,6 +1,6 @@
->1+0&#ffffff0| @7|╔+0#e000002&|═@19|╗| +0#0000000&@43
-|2| @7|║+0#e000002&| |f|i|r|s|t| |n|o|t|i|f|i|c|a|t|i|o|n| |║| +0#0000000&@43
-|3| @7|╚+0#e000002&|═@19|╝| +0#0000000&@43
+>1+0&#ffffff0| @7|╔+0#e000002&|═@21|╗| +0#0000000&@41
+|2| @7|║+0#e000002&| |f|i|r|s|t| |n|o|t|i|f|i|c|a|t|i|o|n| @2|║| +0#0000000&@41
+|3| @7|╚+0#e000002&|═@21|╝| +0#0000000&@41
|4| @73
|5| @73
|6| @73
diff --git a/src/testdir/dumps/Test_popupwin_notify_02.dump b/src/testdir/dumps/Test_popupwin_notify_02.dump
index 1017061..72e2895 100644
--- a/src/testdir/dumps/Test_popupwin_notify_02.dump
+++ b/src/testdir/dumps/Test_popupwin_notify_02.dump
@@ -1,10 +1,10 @@
->1+0&#ffffff0| @7|╔+0#e000002&|═@19|╗| +0#0000000&@43
-|2| @7|║+0#e000002&| |f|i|r|s|t| |n|o|t|i|f|i|c|a|t|i|o|n| |║| +0#0000000&@43
-|3| @7|╚+0#e000002&|═@19|╝| +0#0000000&@43
+>1+0&#ffffff0| @7|╔+0#e000002&|═@21|╗| +0#0000000&@41
+|2| @7|║+0#e000002&| |f|i|r|s|t| |n|o|t|i|f|i|c|a|t|i|o|n| @2|║| +0#0000000&@41
+|3| @7|╚+0#e000002&|═@21|╝| +0#0000000&@41
|4| @7|╔+0fd7ff255|═@31|╗| +0&#ffffff0@31
|5| @7|║+0fd7ff255| |a|n|o|t|h|e|r| |i|m|p|o|r|t|a|n|t| |n|o|t|i|f|i|c|a|t|i|o|n| |║| +0&#ffffff0@31
|6| @7|╚+0fd7ff255|═@31|╝| +0&#ffffff0@31
|7| @73
|8| @73
|9| @73
-@57|1|,|1| @10|T|o|p|
+|:|c|a|l@1| |p|o|p|u|p|_|n|o|t|i|f|i|c|a|t|i|o|n|(|'|a|n|o|t|h|e|r| |i|m|p|o|r|t|a|n|t| |n|o|t|i|f|i|c|a|t|i|o|n|'|1|,|1| @10|T|o|p|
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index 789c859..d9b0b29 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -1191,7 +1191,8 @@
call VerifyScreenDump(buf, 'Test_popupwin_notify_01', {})
" second one goes below the first one
- call term_sendkeys(buf, ":call popup_notification('another important notification', {'highlight': 'Notification'})\<CR>")
+ call term_sendkeys(buf, ":hi link PopupNotification Notification\<CR>")
+ call term_sendkeys(buf, ":call popup_notification('another important notification', {})\<CR>")
call VerifyScreenDump(buf, 'Test_popupwin_notify_02', {})
diff --git a/src/version.c b/src/version.c
index f36b986..4a6fb00 100644
--- a/src/version.c
+++ b/src/version.c
@@ -778,6 +778,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1538,
+/**/
1537,
/**/
1536,