Thanks for the test case.  This patch should fix the problem (at least for WebKit on OS X).

Index: rendering/RenderView.cpp
===================================================================
--- rendering/RenderView.cpp    (revision 35185)
+++ rendering/RenderView.cpp    (working copy)
@@ -152,11 +152,13 @@ void RenderView::paintBoxDecorations(Pai
 {
     // Check to see if we are enclosed by a transparent layer.  If so, we 
cannot blit
     // when scrolling, and we need to use slow repaints.
-    Element* elt = document()->ownerElement();
-    if (view() && elt && elt->renderer()) {
+    Element* elt;
+    for (elt = document()->ownerElement(); view() && elt && elt->renderer(); 
elt = elt->document()->ownerElement()) {
         RenderLayer* layer = elt->renderer()->enclosingLayer();
-        if (layer->isTransparent() || layer->transparentAncestor())
+        if (layer->isTransparent() || layer->transparentAncestor()) {
             frameView()->setUseSlowRepaints();
+            break;
+        }
     }
 
     if (elt || (firstChild() && firstChild()->style()->visibility() == 
VISIBLE) || !view())



On Jul 17, 2008, at 9:36 AM, Artem Ananiev wrote:

<html>
<body>

<div style="opacity:0.5;position:absolute;left:150;top:150">
  <iframe src=""http://java.sun.com/javase/6/docs/api">http://java.sun.com/javase/6/docs/api" width="600" 
height="450"></iframe>
</div>

<div style="opacity:0.2;position:absolute;left:250;top:250">
  <iframe src=""http://java.sun.com/javase/6/docs/api">http://java.sun.com/javase/6/docs/api" width="600" 
height="450"></iframe>
</div>

</body>
</html>

_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to