Mercurial > vim
comparison src/screen.c @ 18720:7f066dff9d70 v8.1.2351
patch 8.1.2351: 'wincolor' not used for > for not fitting double width char
Commit: https://github.com/vim/vim/commit/92e25ab2df03756bbb8523cf871db29fe8819c13
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Nov 26 22:39:10 2019 +0100
patch 8.1.2351: 'wincolor' not used for > for not fitting double width char
Problem: 'wincolor' not used for > for not fitting double width char.
Also: popup drawn on right half of double width character looks
wrong.
Solution: Adjust color for > character. Clear left half of double width
character if right half is being overwritten.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 26 Nov 2019 22:45:04 +0100 |
parents | df141c730008 |
children | 49b78d6465e5 |
comparison
equal
deleted
inserted
replaced
18719:99586852c2db | 18720:7f066dff9d70 |
---|---|
457 off_to = LineOffset[row] + col + coloff; | 457 off_to = LineOffset[row] + col + coloff; |
458 off_from += col; | 458 off_from += col; |
459 endcol = (clear_width > 0 ? clear_width : -clear_width); | 459 endcol = (clear_width > 0 ? clear_width : -clear_width); |
460 } | 460 } |
461 #endif /* FEAT_RIGHTLEFT */ | 461 #endif /* FEAT_RIGHTLEFT */ |
462 | |
463 #ifdef FEAT_TEXT_PROP | |
464 // First char of a popup window may go on top of the right half of a | |
465 // double-wide character. Clear the left half to avoid it getting the popup | |
466 // window background color. | |
467 if (coloff > 0 && ScreenLines[off_to] == 0) | |
468 { | |
469 ScreenLines[off_to - 1] = ' '; | |
470 ScreenLinesUC[off_to - 1] = 0; | |
471 screen_char(off_to - 1, row, col + coloff - 1); | |
472 } | |
473 #endif | |
462 | 474 |
463 redraw_next = char_needs_redraw(off_from, off_to, endcol - col); | 475 redraw_next = char_needs_redraw(off_from, off_to, endcol - col); |
464 | 476 |
465 while (col < endcol) | 477 while (col < endcol) |
466 { | 478 { |