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:
committed by
Christian Brabandt
parent
acdfb8a979
commit
e20fa59903
19
src/screen.c
19
src/screen.c
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user