GNOME Bugzilla – Bug 734740
Antialiasing not always correctly overflown to next cell
Last modified: 2018-10-06 20:26:19 UTC
Created attachment 283324 [details] Screenshot Using the Monospace 8 font (6x13 pixels), type W, w, M, m letters at the prompt, followed by other letters or space. Notice that when an 'M' or 'm' is followed by a space, the right hand side of that letter is usually not properly updated, the antialiased cyan column does not get painted. It's not there either if the blinking cursor is in the following cell and it's currently in the invisible phase. The character gets properly updated on focus in/out. It's also displayed correctly if it's followed by a regular character rather than a space. Also, the buggy behavior seems to only arise if there's nothing immediately above the given character. Interestingly, the same problem doesn't occur with 'W' or 'w', they are always displayed correctly. See screenshot. The black boxes are there only to see the grid. The letters 'W', 'M', space and dot were typed from the keyboard one by one, and the line terminated by pressing Ctrl+C. Magnification was done with xzoom, a not-well-known utility similar to xmag but with continuous updating, really useful to examine vte's behavior.
Thanks for the tip on xzoom! It might be the case that cairo is not returning correct ink bounds to pango / us, don't remember.
Interestingly, if you start a "cat" and there you type "m m ", backspace over them, type "m m m m ", backspace them etc., in the positions that were already occupied the m's are painted correctly, but as soon as the cursor advances to or beyond the position it reached previously, m's start becoming incorrect. So it seems there's a difference between the rowdata containing a space, or finishing at the current cursor position. Sending a \e[K from another terminal to this one clears the characters to the right, so newly typed "m "'s will be incorrect again. In the mean time, VTE_DEBUG=updates always shows the same, the right hand side of the letter 'm' is always repainted (flashes up with red), but is repainted incorrectly sometimes.
This was fixed in https://gitlab.gnome.org/GNOME/vte/issues/26.