[Webkit-unassigned] [Bug 73920] [Qt] Tiled backing store failing to update view under certain conditions

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Nov 5 07:58:06 PST 2012


https://bugs.webkit.org/show_bug.cgi?id=73920





--- Comment #15 from Lamarque V. Souza <Lamarque.Souza at basyskom.com>  2012-11-05 07:59:35 PST ---
(In reply to comment #14)
> (In reply to comment #13)
> Ok, from your output it seems like it's fine that no tile are removed. The two bottom tiles would be removed only if the height dropped lower than 1024 (1185 in your case).
> 
> Maybe the removal and resizing of tiles isn't the problem here, the problem could be that a resized tile won't trigger a repaint of the graphics view in the resized area.
> The way a shrinking tile repaint works is that TileQt::resize will update TileQt::m_rect which will lead TileQt::paint not to paint over the background on this area.
> 
> There should be code that would pass the shrunk rect to the paintedArea with tiledBackingStorePaintEnd to force the QGraphicsView to repaint the background at this area and then call TileQt::paint, but I can't find any.
> A way to do it would be to remove the "if (m_rect.maxX() > oldRect.maxX())" conditions in TileQt::resize and also invalidate the shrunk part of a tile.

you mean doing this?

void TileQt::resize(const IntSize& newSize)
{
    IntRect oldRect = m_rect;
    m_rect = IntRect(m_rect.location(), newSize);

    //if (m_rect.maxX() > oldRect.maxX())
        invalidate(IntRect(oldRect.maxX(), oldRect.y(), m_rect.maxX() - oldRect.maxX(), m_rect.height()));
    //if (m_rect.maxY() > oldRect.maxY())
        invalidate(IntRect(oldRect.x(), oldRect.maxY(), m_rect.width(), m_rect.maxY() - oldRect.maxY()));
    invalidate(m_rect);
}

If so then it does not fix the entire issue :-( The tiles at the end of the second page are correct now, but not the ones in the middle.

> If it was the case though you would probably not see the old part of the tile when the tile isn't visible in the QGraphicsView and then scroll down to see them (which would call TileQt::paint on that area), so it might be a somehow different issue.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the webkit-unassigned mailing list