0
0
mirror of https://github.com/vim/vim.git synced 2025-11-15 23:14:06 -05:00

patch 9.1.0344: Cursor wrong after using setcellwidth() in terminal

Problem:  Cursor wrong after using setcellwidth() in terminal
          (mikoto2000)
Solution: output additional spaces, so the behaviour matches the GUI
          (mikoto2000)

fixes: #14539
closes: #14540

Signed-off-by: mikoto2000 <mikoto2000@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Fix CUI `setcellwidths` characters draw behavior to same GUI behavior.
This commit is contained in:
mikoto2000
2024-04-17 22:06:54 +02:00
committed by Christian Brabandt
parent acdfb8a979
commit e20fa59903
7 changed files with 69 additions and 3 deletions

View File

@@ -1981,7 +1981,24 @@ screen_char(unsigned off, int row, int col)
{
char_u buf[MB_MAXBYTES + 1];
if (utf_ambiguous_width(ScreenLinesUC[off]))
if (get_cellwidth(ScreenLinesUC[off]) > 1)
{
// If the width is set to 2 with `setcellwidths`
#ifdef FEAT_GUI
if (!gui.in_use)
{
#endif
// Clear the two screen cells. If the character is actually
// single width it won't change the second cell.
out_str((char_u *)" ");
term_windgoto(row, col);
screen_cur_col = 9999;
#ifdef FEAT_GUI
}
#endif
}
else if (utf_ambiguous_width(ScreenLinesUC[off]))
{
if (*p_ambw == 'd'
#ifdef FEAT_GUI