[WK2] Recover a loss of dirty region.
authorJungJik Lee <jungjik.lee@samsung.com>
Mon, 1 Apr 2013 04:59:12 +0000 (13:59 +0900)
committerJungJik Lee <jungjik.lee@samsung.com>
Thu, 4 Apr 2013 04:45:55 +0000 (13:45 +0900)
[Title] [WK2] Recover a loss of dirty region.
[Issue#] N_SE-26405
[Problem] TBS can not update the tile due to a loss of dirty region.
[Cause] intersecting dirty region with keepRect can cause the loss of dirty resion.
[Solution] Remove intersect code and invalidate all dirties.

Source/WebCore/platform/graphics/TiledBackingStore.cpp

index 9dd6cb9..1a7e9c9 100755 (executable)
@@ -107,10 +107,8 @@ void TiledBackingStore::invalidate(const IntRect& contentsDirtyRect)
 {
     IntRect dirtyRect(mapFromContents(contentsDirtyRect));
 
-    // Only iterate on the part of the rect that we know we might have tiles.
-    IntRect coveredDirtyRect = intersection(dirtyRect, m_keepRect);
-    Tile::Coordinate topLeft = tileCoordinateForPoint(coveredDirtyRect.location());
-    Tile::Coordinate bottomRight = tileCoordinateForPoint(innerBottomRight(coveredDirtyRect));
+    Tile::Coordinate topLeft = tileCoordinateForPoint(dirtyRect.location());
+    Tile::Coordinate bottomRight = tileCoordinateForPoint(innerBottomRight(dirtyRect));
 
     for (unsigned yCoordinate = topLeft.y(); yCoordinate <= bottomRight.y(); ++yCoordinate) {
         for (unsigned xCoordinate = topLeft.x(); xCoordinate <= bottomRight.x(); ++xCoordinate) {