From 6c203072fea831ce4ed9d45c69b32444fc9f67ff Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Wed, 18 Feb 2026 17:15:37 +0000 Subject: [PATCH] patch 9.2.0016: popup border not redrawn correctly with wide chars Problem: When a popup window's border overwrites part of a wide character from another popup, the remaining half loses its original attribute (background color) because it is reset to 0. Solution: Modify screen_line(), screen_puts_len(), and screen_fill() to preserve the existing ScreenAttrs value when clearing wide character boundaries. Also ensure background data is refreshed for transparent popup cells (Yasuhiro Matsumoto). closes: #19299 Signed-off-by: Yasuhiro Matsumoto Signed-off-by: Christian Brabandt --- src/screen.c | 50 ++++++++++++++++--- src/testdir/dumps/Test_popupwin_mask_1.dump | 6 +-- src/testdir/dumps/Test_popupwin_mask_2.dump | 6 +-- src/testdir/dumps/Test_popupwin_mask_3.dump | 6 +-- src/testdir/dumps/Test_popupwin_mask_4.dump | 6 +-- src/testdir/dumps/Test_popupwin_mask_5.dump | 4 +- .../Test_popupwin_popupmenu_masking_1.dump | 6 +-- src/version.c | 2 + 8 files changed, 61 insertions(+), 25 deletions(-) diff --git a/src/screen.c b/src/screen.c index 3cd3ad39f8..b92e2779fc 100644 --- a/src/screen.c +++ b/src/screen.c @@ -583,13 +583,36 @@ screen_line( redraw_this = TRUE; } #endif - // Do not redraw if under the popup menu. - if (redraw_this && skip_for_popup(row, col + coloff)) - redraw_this = FALSE; - // Also skip the second cell for double-width characters. if (redraw_this && char_cells == 2 && skip_for_popup(row, col + coloff + 1)) redraw_this = FALSE; + // For transparent popup cells, update the background character + // so it shows through the popup. + if (redraw_this && skip_for_popup(row, col + coloff)) + { + ScreenLines[off_to] = ScreenLines[off_from]; + ScreenAttrs[off_to] = ScreenAttrs[off_from]; + if (enc_utf8) + { + ScreenLinesUC[off_to] = ScreenLinesUC[off_from]; + if (ScreenLinesUC[off_from] != 0) + { + for (int i = 0; i < Screen_mco; ++i) + ScreenLinesC[i][off_to] = ScreenLinesC[i][off_from]; + } + } + if (char_cells == 2) + { + ScreenLines[off_to + 1] = ScreenLines[off_from + 1]; + ScreenAttrs[off_to + 1] = ScreenAttrs[off_from]; + } + if (enc_dbcs == DBCS_JPNU) // Copilot's suggestion for DBCS_JPNU + ScreenLines2[off_to] = ScreenLines2[off_from]; + if (enc_dbcs != 0 && char_cells == 2) + screen_char_2(off_to, row, col + coloff); + else + screen_char(off_to, row, col + coloff); + } if (redraw_this) { /* @@ -1339,11 +1362,14 @@ screen_puts_len( #endif && mb_fix_col(col, row) != col) { + // Keep the original attribute to preserve background color + // when drawing over popup windows. if (!skip_for_popup(row, col - 1)) { ScreenLines[off - 1] = ' '; - ScreenAttrs[off - 1] = 0; - if (enc_utf8) + if (enc_dbcs == DBCS_JPNU) + ScreenAttrs[off - 1] = 0; + else if (enc_utf8) { ScreenLinesUC[off - 1] = 0; ScreenLinesC[0][off - 1] = 0; @@ -2206,9 +2232,17 @@ screen_fill( // double wide-char clear out the right half. Only needed in a // terminal. if (start_col > 0 && mb_fix_col(start_col, row) != start_col) - screen_puts_len((char_u *)" ", 1, row, start_col - 1, 0); + { + // start_col is the right half, clear the left half + int left_attr = ScreenAttrs[LineOffset[row] + start_col - 1]; + screen_puts_len((char_u *)" ", 1, row, start_col - 1, left_attr); + } if (end_col < screen_Columns && mb_fix_col(end_col, row) != end_col) - screen_puts_len((char_u *)" ", 1, row, end_col, 0); + { + // end_col is the right half of a wide char, preserve its attribute + int right_attr = ScreenAttrs[LineOffset[row] + end_col]; + screen_puts_len((char_u *)" ", 1, row, end_col, right_attr); + } } /* * Try to use delete-line termcap code, when no attributes or in a diff --git a/src/testdir/dumps/Test_popupwin_mask_1.dump b/src/testdir/dumps/Test_popupwin_mask_1.dump index 2fa0d7c2d9..f309d20ddd 100644 --- a/src/testdir/dumps/Test_popupwin_mask_1.dump +++ b/src/testdir/dumps/Test_popupwin_mask_1.dump @@ -1,12 +1,12 @@ >1+0&#ffffff0|2|3|4|5|6|7|8|9|1| +0&#e0e0e08@12|1+0&#ffffff0|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 -|1|2|3|4|5|6|7|8|9| +0&#e0e0e08|s|o|m|e| |1+0&#ffffff0|3|1|t+0&#e0e0e08| @3|1+0&#ffffff0|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 -|1|2|3|4|5|6|7|8|9| +0&#e0e0e08|0+0&#ffffff0|1@1|t+0&#e0e0e08|h|1+0&#ffffff0|3|x+0#0000001#ffd7ff255|l+0#0000000#e0e0e08|i|n|e| |x+0#0000001#ffd7ff255@2|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 +|1|2|3|4|5|6|7|8|9| +0&#e0e0e08|s|o|m|e| |t|e|x|t| @3|1+0&#ffffff0|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 +|1|2|3|4|5|6|7|8|9| +0&#e0e0e08|a|n|o|t|h|e|r| |l|i|n|e| |x+0#0000001#ffd7ff255@2|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |1|2|3|4|5|6|7|8|9| +0&#e0e0e08@8|y+0#0000001#ffd7ff255@7|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |1|2|3|4|5|6|7|8|9|1|0|═+0#0000001#ffd7ff255@13|X|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |1|2|3|4|5|6|7|8|9|║+0#0000001#ffd7ff255| @4|1+0#0000000#ffffff0|3|1| +0#0000001#ffd7ff255@6|║|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 -|1|2|3|4|5|6|7|8|9|║+0#0000001#ffd7ff255| |j|u|s|t|1+0#0000000#ffffff0|3|1|e+0#0000001#ffd7ff255| |l|i|n|e| |║|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 +|1|2|3|4|5|6|7|8|9|║+0#0000001#ffd7ff255| |j|u|s|t| |o|n|e| |l|i|n|e| |║|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |1|2|3|4|5|6|7|8|9|║+0#0000001#ffd7ff255| @10|1+0#0000000#ffffff0|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |1|2|3|4|5|6|7|8|9|╚+0#0000001#ffd7ff255|═|1+0#0000000#ffffff0@2|═+0#0000001#ffd7ff255@4|1+0#0000000#ffffff0|5|1|6|═+0#0000001#ffd7ff255@1|╝|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 diff --git a/src/testdir/dumps/Test_popupwin_mask_2.dump b/src/testdir/dumps/Test_popupwin_mask_2.dump index 173d40a6f9..41a1c3dfdb 100644 --- a/src/testdir/dumps/Test_popupwin_mask_2.dump +++ b/src/testdir/dumps/Test_popupwin_mask_2.dump @@ -1,12 +1,12 @@ >1+0&#ffffff0|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |1|2|3|4|5|6|7|8|9|1|0| +0&#e0e0e08@12|7+0&#ffffff0|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 -|1|2|3|4|5|6|7|8|9|1| +0&#e0e0e08|s|o|m|e| |3+0&#ffffff0|x+0#0000001#ffd7ff255@1|t+0#0000000#e0e0e08| @3|x+0#0000001#ffd7ff255@1|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 -|1|2|3|4|5|6|7|8|9|1| +0&#e0e0e08|1+0&#ffffff0@2|t+0&#e0e0e08|h|3+0&#ffffff0|y+0#0000001#ffd7ff255@1|l+0#0000000#e0e0e08|i|n|e| |y+0#0000001#ffd7ff255@1|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 +|1|2|3|4|5|6|7|8|9|1| +0&#e0e0e08|s|o|m|e| |t|e|x|t| @3|x+0#0000001#ffd7ff255@1|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 +|1|2|3|4|5|6|7|8|9|1| +0&#e0e0e08|a|n|o|t|h|e|r| |l|i|n|e| |y+0#0000001#ffd7ff255@1|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |1|2|3|4|5|6|7|8|9|1| +0&#e0e0e08@8|1+0&#ffffff0|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |1|2|3|4|5|6|7|8|9|1|0|1@1|═+0#0000001#ffd7ff255@13|X|9+0#0000000#ffffff0|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |1|2|3|4|5|6|7|8|9|1|0|║+0#0000001#ffd7ff255| @4|1+0#0000000#ffffff0|4|1| +0#0000001#ffd7ff255@6|║|9+0#0000000#ffffff0|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 -|1|2|3|4|5|6|7|8|9|1|0|║+0#0000001#ffd7ff255| |j|u|s|t|1+0#0000000#ffffff0|4|1|e+0#0000001#ffd7ff255| |l|i|n|e| |║|9+0#0000000#ffffff0|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 +|1|2|3|4|5|6|7|8|9|1|0|║+0#0000001#ffd7ff255| |j|u|s|t| |o|n|e| |l|i|n|e| |║|9+0#0000000#ffffff0|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |1|2|3|4|5|6|7|8|9|1|0|║+0#0000001#ffd7ff255| @10|1+0#0000000#ffffff0|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |1|2|3|4|5|6|7|8|9|1|0|╚+0#0000001#ffd7ff255|═|1+0#0000000#ffffff0|2|1|═+0#0000001#ffd7ff255@4|1+0#0000000#ffffff0|6|1|7|═+0#0000001#ffd7ff255@1|╝|9+0#0000000#ffffff0|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 diff --git a/src/testdir/dumps/Test_popupwin_mask_3.dump b/src/testdir/dumps/Test_popupwin_mask_3.dump index 40681fb4ca..7d5f0604f0 100644 --- a/src/testdir/dumps/Test_popupwin_mask_3.dump +++ b/src/testdir/dumps/Test_popupwin_mask_3.dump @@ -1,12 +1,12 @@ >1+0&#ffffff0|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7| +0&#e0e0e08@9 -|1+0&#ffffff0|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|x+0#0000001#ffd7ff255@8|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3| +0&#e0e0e08|s|o|m|e| |0+0&#ffffff0|4|1|t+0&#e0e0e08| -|1+0&#ffffff0|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|y+0#0000001#ffd7ff255@8|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3| +0&#e0e0e08|3+0&#ffffff0|8|3|t+0&#e0e0e08|h|0+0&#ffffff0|4|1|l+0&#e0e0e08|i +|1+0&#ffffff0|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|x+0#0000001#ffd7ff255@8|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3| +0&#e0e0e08|s|o|m|e| |t|e|x|t| +|1+0&#ffffff0|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|y+0#0000001#ffd7ff255@8|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3| +0&#e0e0e08|a|n|o|t|h|e|r| |l|i |1+0&#ffffff0|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3| +0&#e0e0e08@8|4+0&#ffffff0|2 |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|═+0#0000001#ffd7ff255@10 |1+0#0000000#ffffff0|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|║+0#0000001#ffd7ff255| @4|9+0#0000000#ffffff0|4|0| +0#0000001#ffd7ff255@3 -|1+0#0000000#ffffff0|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|║+0#0000001#ffd7ff255| |j|u|s|t|9+0#0000000#ffffff0|4|0|e+0#0000001#ffd7ff255| |l|i +|1+0#0000000#ffffff0|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|║+0#0000001#ffd7ff255| |j|u|s|t| |o|n|e| |l|i |1+0#0000000#ffffff0|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|║+0#0000001#ffd7ff255| @10|2+0#0000000#ffffff0 |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|╚+0#0000001#ffd7ff255|═|7+0#0000000#ffffff0|3|8|═+0#0000001#ffd7ff255@4|1+0#0000000#ffffff0|4|2 |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 diff --git a/src/testdir/dumps/Test_popupwin_mask_4.dump b/src/testdir/dumps/Test_popupwin_mask_4.dump index 0cf44d2c25..24540b036c 100644 --- a/src/testdir/dumps/Test_popupwin_mask_4.dump +++ b/src/testdir/dumps/Test_popupwin_mask_4.dump @@ -1,12 +1,12 @@ >1+0&#ffffff0|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 | +0&#e0e0e08@11|1+0&#ffffff0@1|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 -|o+0&#e0e0e08|m|e| |5+0&#ffffff0|6|7|t+0&#e0e0e08| @3|1+0&#ffffff0@1|2|1|3|x+0#0000001#ffd7ff255@8|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 -|1|2|t+0&#e0e0e08|h|5+0&#ffffff0|6|7|l+0&#e0e0e08|i|n|e| |1+0&#ffffff0@1|2|1|3|y+0#0000001#ffd7ff255@8|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 +|o+0&#e0e0e08|m|e| |t|e|x|t| @3|1+0&#ffffff0@1|2|1|3|x+0#0000001#ffd7ff255@8|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 +|n+0&#e0e0e08|o|t|h|e|r| |l|i|n|e| |1+0&#ffffff0@1|2|1|3|y+0#0000001#ffd7ff255@8|8+0#0000000#ffffff0|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 | +0&#e0e0e08@6|8+0&#ffffff0|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |═+0#0000001#ffd7ff255@10|X|1+0#0000000#ffffff0@1|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 | +0#0000001#ffd7ff255|2+0#0000000#ffffff0|3|4| +0#0000001#ffd7ff255@6|║|1+0#0000000#ffffff0@1|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 -|t+0#0000001#ffd7ff255|2+0#0000000#ffffff0|3|4|e+0#0000001#ffd7ff255| |l|i|n|e| |║|1+0#0000000#ffffff0@1|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 +|t+0#0000001#ffd7ff255| |o|n|e| |l|i|n|e| |║|1+0#0000000#ffffff0@1|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 | +0#0000001#ffd7ff255@6|8+0#0000000#ffffff0|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |═+0#0000001#ffd7ff255@4|6+0#0000000#ffffff0|7|8|9|═+0#0000001#ffd7ff255@1|╝|1+0#0000000#ffffff0@1|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 diff --git a/src/testdir/dumps/Test_popupwin_mask_5.dump b/src/testdir/dumps/Test_popupwin_mask_5.dump index 78cc6f0858..be2feddbf7 100644 --- a/src/testdir/dumps/Test_popupwin_mask_5.dump +++ b/src/testdir/dumps/Test_popupwin_mask_5.dump @@ -9,5 +9,5 @@ |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 |1|2|3|4|5|6|7|8|9|1|0|1@2|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|2|7|2|8|2|9|3|0|3|1|3|2|3@2|4|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 | +0&#e0e0e08@11|1+0&#ffffff0@1|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|2|6|═+0#0000001#ffd7ff255@13|X|4+0#0000000#ffffff0|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 -|o+0&#e0e0e08|m|e| |5+0&#ffffff0|6|7|t+0&#e0e0e08| @3|1+0&#ffffff0@1|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|║+0#0000001#ffd7ff255| @4|2+0#0000000#ffffff0|9|3| +0#0000001#ffd7ff255@6|║|4+0#0000000#ffffff0|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 -|:| |t+0&#e0e0e08|h| +0&#ffffff0@2|l+0&#e0e0e08|i|n|e| | +0&#ffffff0@28|║+0#0000001#ffd7ff255| |j|u|s|t| +0#0000000#ffffff0@2|e+0#0000001#ffd7ff255| |l|i|n|e| |║|,+0#0000000#ffffff0|1| @10|T|o|p| +|o+0&#e0e0e08|m|e| |t|e|x|t| @3|1+0&#ffffff0@1|2|1|3|1|4|1|5|1|6|1|7|1|8|1|9|2|0|2|1|2@2|3|2|4|2|5|║+0#0000001#ffd7ff255| @4|2+0#0000000#ffffff0|9|3| +0#0000001#ffd7ff255@6|║|4+0#0000000#ffffff0|3|5|3|6|3|7|3|8|3|9|4|0|4|1|4|2 +|n+0&#e0e0e08|o|t|h|e|r| |l|i|n|e| | +0&#ffffff0@28|║+0#0000001#ffd7ff255| |j|u|s|t| |o|n|e| |l|i|n|e| |║|,+0#0000000#ffffff0|1| @10|T|o|p| diff --git a/src/testdir/dumps/Test_popupwin_popupmenu_masking_1.dump b/src/testdir/dumps/Test_popupwin_popupmenu_masking_1.dump index 9cf41490cb..4992a11dab 100644 --- a/src/testdir/dumps/Test_popupwin_popupmenu_masking_1.dump +++ b/src/testdir/dumps/Test_popupwin_popupmenu_masking_1.dump @@ -1,7 +1,7 @@ |t+0&#ffffff0|e|x|t| |t|e|x|t| |t|e|x|t| |t|e|x|t| |t|e|x|t| |t|a|w|o|r|d> @2|p+0#ffffff16#e000002|o|p|u|p| |b|e|l|o|w| @1|╔+0#0000001#e0e0e08|═@15|X| +0#0000000#ffffff0@9 -|~+0#4040ff13&| @23| +0#0000001#e0e0e08|w|r|d| @4|W| |e|x|t|r|a| |t|e|x|t| |║| |w|o|r|d|s| |a|r|e| |c|o@1|l| |║| +0#4040ff13#ffffff0@9 -|~| @23| +0#0000001#ffd7ff255|a|n|o|t|w|r|d| |W| |e|x|t|r|a| |t|e|x|t| |╚+0&#e0e0e08|═@15|⇲| +0#4040ff13#ffffff0@9 -|~| @19|p+0#0000000#ffff4012|o|p|u|p| |o|n| |t|o|p| +0#0000001#ffd7ff255|W| |e|x|t|r|a| |t|e|x|t| | +0#ffffff16#e000002@3| +0#4040ff13#ffffff0@23 +|~+0#4040ff13&| @23| +0#0000001#e0e0e08|w|r|d| @4|p+0#ffffff16#e000002|o|p|u|p| |b|e|l|o|w| @1|║+0#0000001#e0e0e08| |w|o|r|d|s| |a|r|e| |c|o@1|l| |║| +0#4040ff13#ffffff0@9 +|~| @23| +0#0000001#ffd7ff255|a|n|o|t|w|r|d| |p+0#ffffff16#e000002|o|p|u|p| |b|e|l|o|w| @1|╚+0#0000001#e0e0e08|═@15|⇲| +0#4040ff13#ffffff0@9 +|~| @19|p+0#0000000#ffff4012|o|p|u|p| |o|n| |t|o|p| +0#0000001#ffd7ff255|p+0#ffffff16#e000002|o|p|u|p| |b|e|l|o|w| @5| +0#4040ff13#ffffff0@23 |~| @19|p+0#0000000#ffff4012|o|p|u|p| |o|n| |t|o|p| +0#0000001#ffd7ff255|W| |e|x|t|r|a| |t|e|x|t| | +0#4040ff13#ffffff0@27 |~| @19|p+0#0000000#ffff4012|o|p|u|p| |o|n| |t|o|p| +0#4040ff13#ffffff0@41 |~| @73 diff --git a/src/version.c b/src/version.c index 82487d6f8f..d6cc249c1f 100644 --- a/src/version.c +++ b/src/version.c @@ -734,6 +734,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 16, /**/ 15, /**/ -- 2.47.3