0
0
mirror of https://github.com/vim/vim.git synced 2025-08-23 19:34:27 -04:00

patch 8.1.1460: popup window border characters may be wrong

Problem:    Popup window border characters may be wrong.
Solution:   Reset the border characters for each popup.  Correct use of
            'ambiwidth'.
This commit is contained in:
Bram Moolenaar 2019-06-03 22:53:30 +02:00
parent 3f6aeba18b
commit 02e15072be
2 changed files with 11 additions and 2 deletions

View File

@ -1041,7 +1041,7 @@ update_popups(void)
int total_height; int total_height;
int popup_attr; int popup_attr;
int border_attr[4]; int border_attr[4];
int border_char[8] = {'-', '|', '-', '|', '+', '+', '+', '+', }; int border_char[8];
char_u buf[MB_MAXBYTES]; char_u buf[MB_MAXBYTES];
int row; int row;
int i; int i;
@ -1080,7 +1080,7 @@ update_popups(void)
// We can only use these line drawing characters when 'encoding' is // We can only use these line drawing characters when 'encoding' is
// "utf-8" and 'ambiwidth' is "single". // "utf-8" and 'ambiwidth' is "single".
if (enc_utf8 && p_ambw == 's') if (enc_utf8 && *p_ambw == 's')
{ {
border_char[0] = border_char[2] = 0x2550; border_char[0] = border_char[2] = 0x2550;
border_char[1] = border_char[3] = 0x2551; border_char[1] = border_char[3] = 0x2551;
@ -1089,6 +1089,13 @@ update_popups(void)
border_char[6] = 0x255d; border_char[6] = 0x255d;
border_char[7] = 0x255a; border_char[7] = 0x255a;
} }
else
{
border_char[0] = border_char[2] = '-';
border_char[1] = border_char[3] = '|';
for (i = 4; i < 8; ++i)
border_char[i] = '+';
}
for (i = 0; i < 8; ++i) for (i = 0; i < 8; ++i)
if (wp->w_border_char[i] != 0) if (wp->w_border_char[i] != 0)
border_char[i] = wp->w_border_char[i]; border_char[i] = wp->w_border_char[i];

View File

@ -767,6 +767,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1460,
/**/ /**/
1459, 1459,
/**/ /**/