diff 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
line wrap: on
line diff
--- a/src/screen.c
+++ b/src/screen.c
@@ -460,6 +460,18 @@ screen_line(
     }
 #endif /* FEAT_RIGHTLEFT */
 
+#ifdef FEAT_TEXT_PROP
+    // First char of a popup window may go on top of the right half of a
+    // double-wide character. Clear the left half to avoid it getting the popup
+    // window background color.
+    if (coloff > 0 && ScreenLines[off_to] == 0)
+    {
+	ScreenLines[off_to - 1] = ' ';
+	ScreenLinesUC[off_to - 1] = 0;
+	screen_char(off_to - 1, row, col + coloff - 1);
+    }
+#endif
+
     redraw_next = char_needs_redraw(off_from, off_to, endcol - col);
 
     while (col < endcol)