avoid overlapping transparent background #3334
Merged
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.
The overlap bug caused by italics (see #3288) is a result of breaking the line into words due to the different font style. Each word is separately given an opaque bg and shadow. The thicker the border, the more it overlaps. If the bg is transparent, it will layer and look bad.
What this patch does is attempt to create a single "line" word for purposes of the background drawing, after verifying that the string of words is really a single split line (it assumes this is the case if all the properties match except font decoration--it could possibly be improved to validate the words came from a single split line).
If the creation is successful, it will create a single draw call instead of drawing each word separately. The draw functions are simplified versions of the word ones (possible code reuse, but it is probably not worth refactoring to do it).
Note: this does not solve vertical overlaps.