2012-02-21 No'am Rosenthal <noam.rosenthal@nokia.com>
+ [Qt][WK2] Draw tiles of previous contents-scale for opaque layers if they don't intersect with previous tiles
+ https://bugs.webkit.org/show_bug.cgi?id=78962
+
+ Only avoid painting old-scale tiles in semi-transparent situtations if the old
+ tiles intersect with existing tiles.
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * UIProcess/qt/LayerBackingStore.cpp:
+ (WebKit::LayerBackingStore::paintToTextureMapper):
+
+2012-02-21 No'am Rosenthal <noam.rosenthal@nokia.com>
+
[Qt] Previous web page appears outside content rect
https://bugs.webkit.org/show_bug.cgi?id=78816
// We have to do this every time we paint, in case the opacity has changed.
HashMap<int, LayerBackingStoreTile>::iterator end = m_tiles.end();
+ FloatRect coveredRect;
for (HashMap<int, LayerBackingStoreTile>::iterator it = m_tiles.begin(); it != end; ++it) {
LayerBackingStoreTile& tile = it->second;
if (!tile.texture())
if (tile.scale() == m_scale) {
tilesToPaint.append(&tile);
+ coveredRect.unite(tile.rect());
continue;
}
// Only show the previous tile if the opacity is high, otherwise effect looks like a bug.
- if (opacity > 0.95)
- tilesToPaint.prepend(&tile);
+ // We show the previous-scale tile anyway if it doesn't intersect with any current-scale tile.
+ if (opacity < 0.95 && coveredRect.intersects(tile.rect()))
+ continue;
+
+ tilesToPaint.prepend(&tile);
+ coveredRect.unite(tile.rect());
}
bool shouldClip = !targetRect.contains(coveredRect);