Fix pixel test regression in fast/table/overflowHidden.html. There was
authorhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 17 Mar 2006 10:16:57 +0000 (10:16 +0000)
committerhyatt <hyatt@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 17 Mar 2006 10:16:57 +0000 (10:16 +0000)
        a borderTopExtra error made in the new boundingBox code for layers that
        caused the bottom half of cells with opacity set to be clipped out.

        Reviewed by andersca

        * rendering/render_layer.cpp:
        (WebCore::RenderLayer::absoluteBoundingBox):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@13347 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/rendering/render_layer.cpp

index eb68d35996e7a092ec90e064d0bf3718c92224b0..ad4fc168a9a6a8c10d9e96441e353a3a0ba9dffe 100644 (file)
@@ -1,3 +1,14 @@
+2006-03-17  David Hyatt  <hyatt@apple.com>
+
+        Fix pixel test regression in fast/table/overflowHidden.html.  There was
+        a borderTopExtra error made in the new boundingBox code for layers that
+        caused the bottom half of cells with opacity set to be clipped out.
+
+        Reviewed by andersca
+
+        * rendering/render_layer.cpp:
+        (WebCore::RenderLayer::absoluteBoundingBox):
+
 2006-03-17  David Hyatt  <hyatt@apple.com>
 
         Give table rows and sections accurate dimensions.  Fix absolutePosition
 2006-03-17  David Hyatt  <hyatt@apple.com>
 
         Give table rows and sections accurate dimensions.  Fix absolutePosition
index 3099a1cef6b1e3223505297cf94303086ca3d0b4..13c8eec2a11aa1af874d7d79983aa14b3e8663ba 100644 (file)
@@ -1412,7 +1412,11 @@ IntRect RenderLayer::absoluteBoundingBox() const
             result.unite(floatRect);
         
         // We have to adjust the x/y of this result so that it is in the coordinate space of the layer.
             result.unite(floatRect);
         
         // We have to adjust the x/y of this result so that it is in the coordinate space of the layer.
-        result.move(m_x, m_y);
+        // We also have to add in borderTopExtra here, since borderBox(), in order to play well with methods like
+        // floatRect that deal with child content, uses an origin of (0,0) that is at the child content box (so
+        // border box returns a y coord of -borderTopExtra().  The layer, however, uses the outer box.  This is all
+        // really confusing.
+        result.move(m_x, m_y + renderer()->borderTopExtra());
     }
     
     // Convert the bounding box to an absolute position.  We can do this easily by looking at the delta
     }
     
     // Convert the bounding box to an absolute position.  We can do this easily by looking at the delta