[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

hyatt hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 08:10:27 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 85051469fd52b8cf7fb05df4ee5a111bde8b085a
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Sun Nov 9 22:30:20 2003 +0000

    	Fix for 3478309, make sure backgrounds paint in the border box and not just in the padding box.
    
            Reviewed by darin
    
    	Also making sure that <frame>s aren't transparent, since other browsers seem to only make <iframe>s/<object>s
    	be transparent.
    
            * khtml/rendering/render_box.cpp:
            (RenderBox::paintRootBoxDecorations):
            (RenderBox::paintBackgroundExtended):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@5432 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index a4b89dd..6e49f45 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,16 @@
+2003-11-09  David Hyatt  <hyatt at apple.com>
+
+	Fix for 3478309, make sure backgrounds paint in the border box and not just in the padding box.
+	
+        Reviewed by darin
+
+	Also making sure that <frame>s aren't transparent, since other browsers seem to only make <iframe>s/<object>s
+	be transparent.
+	
+        * khtml/rendering/render_box.cpp:
+        (RenderBox::paintRootBoxDecorations):
+        (RenderBox::paintBackgroundExtended):
+
 2003-11-08  Darin Adler  <darin at apple.com>
 
         Reviewed by John.
diff --git a/WebCore/khtml/rendering/render_box.cpp b/WebCore/khtml/rendering/render_box.cpp
index bec65fd..965d48c 100644
--- a/WebCore/khtml/rendering/render_box.cpp
+++ b/WebCore/khtml/rendering/render_box.cpp
@@ -202,6 +202,7 @@ void RenderBox::paintRootBoxDecorations(QPainter *p,int, int _y,
     QColor c = style()->backgroundColor();
     CachedImage *bg = style()->backgroundImage();
 
+    bool canBeTransparent = true;
     if (!c.isValid() && !bg) {
         // Locate the <body> element using the DOM.  This is easier than trying
         // to crawl around a render tree with potential :before/:after content and
@@ -213,6 +214,10 @@ void RenderBox::paintRootBoxDecorations(QPainter *p,int, int _y,
                 bodyObject = elt->renderer();
                 break;
             }
+            else if (elt->id() == ID_FRAMESET) {
+                canBeTransparent = false; // Can't scroll a frameset document anyway.
+                break;
+            }
         }
 
         if (bodyObject) {
@@ -224,7 +229,8 @@ void RenderBox::paintRootBoxDecorations(QPainter *p,int, int _y,
     // Only fill with a base color (e.g., white) if we're the root document, since iframes/frames with
     // no background in the child document should show the parent's background.
     if (!c.isValid() && canvas()->view()) {
-        if (element()->getDocument()->ownerElement())
+        DOM::NodeImpl* elt = element()->getDocument()->ownerElement();
+        if (canBeTransparent && elt && elt->id() != ID_FRAME) // Frames are never transparent.
             canvas()->view()->useSlowRepaints(); // The parent must show behind the child.
         else
             c = canvas()->view()->palette().active().color(QColorGroup::Base);
@@ -349,18 +355,17 @@ void RenderBox::paintBackgroundExtended(QPainter *p, const QColor &c, CachedImag
                         cw += xPosition;
                     }
                 }
+                cx += bleft;
             } else {
-                cw = w-vpab;
+                cw = w;
                 cx = _tx;
-                if(pixw == 0){
+                if (pixw == 0)
                     sx = 0;
-                }else{
+                else
                     sx =  pixw - ((sptr->backgroundXPosition().minWidth(pw-pixw)) % pixw );
-                }
+                sx -= bleft % pixw;
             }
 
-            cx += bleft;
-
             if( (bgr == NO_REPEAT || bgr == REPEAT_X) && h > pixh ) {
                 ch = pixh;
                 int yPosition = sptr->backgroundYPosition().minWidth(ph-pixh);
@@ -375,17 +380,18 @@ void RenderBox::paintBackgroundExtended(QPainter *p, const QColor &c, CachedImag
                         ch += yPosition;
                     }
                 }
+                
+                cy += borderTop();
             } else {
-                ch = h-hpab;
+                ch = h;
                 cy = _ty;
                 if(pixh == 0){
                     sy = 0;
                 }else{
                     sy = pixh - ((sptr->backgroundYPosition().minWidth(ph-pixh)) % pixh );
                 }
+                sy -= borderTop() % pixh;
             }
-
-            cy += borderTop();
         }
         else
         {
@@ -424,7 +430,7 @@ void RenderBox::paintBackgroundExtended(QPainter *p, const QColor &c, CachedImag
             }
 
             QRect fix(cx,cy,cw,ch);
-            QRect ele(_tx+bleft,_ty+borderTop(),w-vpab,h-hpab);
+            QRect ele(_tx,_ty,w,h);
             QRect b = fix.intersect(ele);
             sx+=b.x()-cx;
             sy+=b.y()-cy;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list