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

--- Comment #214 from Ruth Ivimey-Cook <r...@ivimey.org> ---
I did some more work trying to understand the issue yesterday and as part of
that created some debug prints to show what is happening. Note that the debug
includes a macro "delay()" which was intended to slow things down enough to
watch what happens. Change the delay amount or remove the call to delay() as
appropriate.

I had previously presumed the bug was an 'off-by-one' error but the debug code
indicates that updates do happen on the appropriate pixel areas. I no longer
think this explains it. However the lines do appear more reliably when the
drawTextFragments() call isn't followed by anything else.

I think, though at present this is a guess, that the problem is a rounding
error. If internally the scaling code is rounding down rather than up, a
fractional half or third of a pixel could be reduced to 0, and that when then
scaled up that results in whole rows or columns of pixels not written. I say
this is a guess because I haven't yet found the evidence for it.

What is also obvious from the resulting trace is that there is a lot of
apparently unnecessary repainting going on. Partly this is because ::paintEvent
is being called with a damage rectangle equal to the terminal widget size, for
reasons I cannot yet explain.

It would be good to eliminate the excessive repainting because it partly masks
the actual issues, and partly because it is just making everything slower.

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

Reply via email to