Aaron Jensen <aaronjensen@
gmail. > writes:com Hi,
I've narrowed it down to the addition to frame in the glyph comparison. As far as I can tell, the attached patch removes the flickering for me. I saw the cursor blink once, but I couldn't reproduce that and I couldn't get it to do it again.
The patch is not suitable for applying to master as it certainly breaks something int he tty child frame code, but hopefully it gives you an idea of what the problem might be. I'm going to experiment with accounting for the NULL frame in the space glyph and see if that helps.
Thanks Aaron, that was very helpful. I'm pretty sure it gave me right idea, namely... This in adjust_glyph_matrix
dispnew.c:
505 while (row < end)
506 {
507 row->glyphs[LEFT_MARGIN_AREA] = 508 xnrealloc (row->glyphs[LEFT_MARGIN_AREA], 509 dim.width, sizeof (struct glyph));means that glyphs in window-system windows are not zeroed. Which in turn means that glyph::frame is not guaranteed to be NULL initially. And because I falsely assumed that to be the case, I didn't change the code producing glyphs for window-systems to set glyph::frame, which isn't needed or used on window-systems. And in the end, the glyph comparisons can fail.
Or so is the hypothesis...
Could you please try if the attached change works for you (without your patch)?