https://bugs.kde.org/show_bug.cgi?id=403868

--- Comment #6 from Dominik Haumann <dhaum...@kde.org> ---
Background: The rendering pipeline in Kate (KateRenderer) is line based: if a
line needs to be drawn, the following happens:
1. We fill the line rect with the background color.
2. We collect range data such as a selection and paint this background data
over the background
3. The foreground text is drawn.

The problem of this approach is that many fonts have characters such as _ that
are layouted such that they are painted into the next line. However, when the
next line is painted, the background fill overpaints these characters again.

In other words: the current painting algo is inherently broken. A proper fix
would be to have several layers, and then blit one over the other.

Our hack/workaround in the past was for line N to also again draw text of line
N-1 and N+1 with clipping for line N.

This clipping leads to the bug that the very last line misses characters such
as _, since there is no line N+1.

Now this bug report tells us we still have issues with overpainting.

If anyone wants ti have a look, the above info may help to understand what's
going on in the code, maybe someone finds a good fix?

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to