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 eb68d35..ad4fc16 100644 (file)
@@ -1,5 +1,16 @@
 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
         to work for table cells properly.  Add an absolutePositionForContent method
         to make sure callers that want to deal with the content of a cell handle
index 3099a1c..13c8eec 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.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