1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-25 01:02:24 +00:00

Fix cursor display on a combined character cell.

[originally from svn r4625]
This commit is contained in:
Simon Tatham 2004-10-15 08:51:57 +00:00
parent 557256c38e
commit db54732e38
2 changed files with 6 additions and 1 deletions

View File

@ -2717,6 +2717,7 @@ void term_out(Terminal *term)
break;
case 0:
add_cc(cline, term->curs.x - !term->wrapnext, c);
term->seen_disp_event = 1;
continue;
default:
continue;
@ -4559,6 +4560,7 @@ static void do_paint(Terminal *term, Context ctx, int may_optimise)
if (i == our_curs_y && (term->curstype != cursor || updated_line)) {
ch[0] = (wchar_t) cursor_background.chr;
attr = cursor_background.attr | cursor;
ccount = 1;
if (cursor_background.cc_next) {
termchar *dd = ldata->chars + cursor_background.cc_next;
@ -4594,7 +4596,7 @@ static void do_paint(Terminal *term, Context ctx, int may_optimise)
attr |= TATTR_COMBINING;
}
do_cursor(ctx, our_curs_x, i, ch, 1, attr, ldata->lattr);
do_cursor(ctx, our_curs_x, i, ch, ccount, attr, ldata->lattr);
term->curstype = cursor;
}

View File

@ -2049,6 +2049,9 @@ void do_cursor(Context ctx, int x, int y, wchar_t *text, int len,
active = 0;
do_text_internal(ctx, x, y, text, len, attr, lattr);
if (attr & TATTR_COMBINING)
len = 1;
if (attr & ATTR_WIDE) {
widefactor = 2;
} else {