Open
Conversation
a870436 to
813da06
Compare
|
**Before**: The first character "あ" in line 2 shows only its left half (truncated). When adding spaces to line 3, garbage appears where the right half of "け" would be.
**After**: Characters are completely hidden when partially overlapped, and no garbage appears.
ref: #9874
…--
shane.xb.qian
|
813da06 to
ce5fdd7
Compare
Member
Author
|
This still wrong. |
3feed02 to
881447a
Compare
Member
Author
|
I have identified what is happening and what needs to be fixed. This issue has two problems. This pull request fixes only one of them. When the left edge of the popup dialog overlaps the right half of a multibyte character, set the redraw_this flag to TRUE. And the other issue, where the right side of the pop-up dialog is not rendered correctly, |
When a popup window with partially covers a wide character: - If only the right half is visible, hide the entire character - Clear garbage that would show through transparent popups This ensures Vim's rule 'do not show wide chars with only half visible' is properly enforced even with popup windows.
881447a to
d398f4b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
When a popup window partially overlaps a wide character (e.g., Japanese characters):
Truncated display: If only the right half of a wide character is visible, the character was displayed with its right half cut off, violating Vim's rule that "wide characters with only half visible should not be shown at all."
Garbage display: Old character data remained in the screen buffer and was visible through the popup, appearing as garbage.
Reproduction
Before: The first character "あ" in line 2 shows only its left half (truncated). When adding spaces to line 3, garbage appears where the right half of "け" would be.
After: Characters are completely hidden when partially overlapped, and no garbage appears.
Left half of あ must not be shown.
Right half of "け" must be shown as a space.
Solution
In
screen.c, when rendering wide characters that are partially blocked by a popup:ScreenLinesto prevent garbageredraw_this = FALSE)