This is very visible if you open a file that will have partial updates
and you open it quite zoomed in (so that tiled rendering is in place).
There were two problems:
- If we open the file from the command line, we get a few resize events,
in my case around four, so we where requesting different tiles for each of the
four resizes, which resulted in multiple re-renders, which with partial
updates looks bad. We fix that by also starting the delayResizeEventTimer
on resize events even if there's no items on the view yet, this has a
slight delay in rendering but i can't really see it
- When doing tiled rendering we request a bit more than the immediate visible rect,
this is the expandedVisibleRect variable, but the problem is that if this is the
first request that will create the tiles, hasTileManager still returned false, so
we would request that tile, then go back and since we would have tiles, request
a somewhat bigger tile and that would also end up in a repaint. We fix that by
introducing the requestWillCreateTileManager function that lets the
pageview know that even if we have no tile manager yet this particular request
will create one and thus we should also expand the requested tile a bit to not
end up in the previous situation where we requested a similar area twice