[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 06:50:17 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 2489096d4cc80ff33be29d75018e56435f96689d
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Oct 16 21:55:08 2002 +0000

    	A very substantial change.  Absolute/fixed positioned elements that
    	are NOT renderflows were not getting layers constructed for them.
    	They do now.
    
    	Also, floats now have layers constructed for them.  This allows
    	printSpecialObjects to be completely eliminated, enables smarter
    	damge rect intersection testing for faster painting, and fixes
    	regressions on sites like www.demian5.com.
    
            * khtml/rendering/render_box.cpp:
            (RenderBox::setStyle):
            * khtml/rendering/render_flow.cpp:
            (RenderFlow::printObject):
            (RenderFlow::addOverHangingFloats):
            (RenderFlow::printTree):
            * khtml/rendering/render_flow.h:
            * khtml/rendering/render_layer.cpp:
            (RenderLayer::constructZTree):
            * khtml/rendering/render_root.cpp:
            (RenderRoot::printObject):
            * khtml/rendering/render_table.cpp:
            (RenderTable::print):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2341 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2002-12-03 b/WebCore/ChangeLog-2002-12-03
index 977b4a7..2873d45 100644
--- a/WebCore/ChangeLog-2002-12-03
+++ b/WebCore/ChangeLog-2002-12-03
@@ -1,3 +1,28 @@
+2002-10-16  David Hyatt  <hyatt at apple.com>
+
+	A very substantial change.  Absolute/fixed positioned elements that
+	are NOT renderflows were not getting layers constructed for them.
+	They do now.
+
+	Also, floats now have layers constructed for them.  This allows
+	printSpecialObjects to be completely eliminated, enables smarter
+	damge rect intersection testing for faster painting, and fixes
+	regressions on sites like www.demian5.com.
+	
+        * khtml/rendering/render_box.cpp:
+        (RenderBox::setStyle):
+        * khtml/rendering/render_flow.cpp:
+        (RenderFlow::printObject):
+        (RenderFlow::addOverHangingFloats):
+        (RenderFlow::printTree):
+        * khtml/rendering/render_flow.h:
+        * khtml/rendering/render_layer.cpp:
+        (RenderLayer::constructZTree):
+        * khtml/rendering/render_root.cpp:
+        (RenderRoot::printObject):
+        * khtml/rendering/render_table.cpp:
+        (RenderTable::print):
+
 2002-10-16  Richard Williamson  <rjw at apple.com>
 
         Removed bogus code.
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 977b4a7..2873d45 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,28 @@
+2002-10-16  David Hyatt  <hyatt at apple.com>
+
+	A very substantial change.  Absolute/fixed positioned elements that
+	are NOT renderflows were not getting layers constructed for them.
+	They do now.
+
+	Also, floats now have layers constructed for them.  This allows
+	printSpecialObjects to be completely eliminated, enables smarter
+	damge rect intersection testing for faster painting, and fixes
+	regressions on sites like www.demian5.com.
+	
+        * khtml/rendering/render_box.cpp:
+        (RenderBox::setStyle):
+        * khtml/rendering/render_flow.cpp:
+        (RenderFlow::printObject):
+        (RenderFlow::addOverHangingFloats):
+        (RenderFlow::printTree):
+        * khtml/rendering/render_flow.h:
+        * khtml/rendering/render_layer.cpp:
+        (RenderLayer::constructZTree):
+        * khtml/rendering/render_root.cpp:
+        (RenderRoot::printObject):
+        * khtml/rendering/render_table.cpp:
+        (RenderTable::print):
+
 2002-10-16  Richard Williamson  <rjw at apple.com>
 
         Removed bogus code.
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 977b4a7..2873d45 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,28 @@
+2002-10-16  David Hyatt  <hyatt at apple.com>
+
+	A very substantial change.  Absolute/fixed positioned elements that
+	are NOT renderflows were not getting layers constructed for them.
+	They do now.
+
+	Also, floats now have layers constructed for them.  This allows
+	printSpecialObjects to be completely eliminated, enables smarter
+	damge rect intersection testing for faster painting, and fixes
+	regressions on sites like www.demian5.com.
+	
+        * khtml/rendering/render_box.cpp:
+        (RenderBox::setStyle):
+        * khtml/rendering/render_flow.cpp:
+        (RenderFlow::printObject):
+        (RenderFlow::addOverHangingFloats):
+        (RenderFlow::printTree):
+        * khtml/rendering/render_flow.h:
+        * khtml/rendering/render_layer.cpp:
+        (RenderLayer::constructZTree):
+        * khtml/rendering/render_root.cpp:
+        (RenderRoot::printObject):
+        * khtml/rendering/render_table.cpp:
+        (RenderTable::print):
+
 2002-10-16  Richard Williamson  <rjw at apple.com>
 
         Removed bogus code.
diff --git a/WebCore/khtml/rendering/render_box.cpp b/WebCore/khtml/rendering/render_box.cpp
index 4fd05db..c965353 100644
--- a/WebCore/khtml/rendering/render_box.cpp
+++ b/WebCore/khtml/rendering/render_box.cpp
@@ -76,16 +76,14 @@ void RenderBox::setStyle(RenderStyle *_style)
         break;
     default:
         setPositioned(false);
-        if(_style->isFloating()) {
+        if(_style->isFloating())
             setFloating(true);
-        } else {
-            if(_style->position() == RELATIVE) {
-                setRelPositioned(true);
-                if (!m_layer)
-                    m_layer = new RenderLayer(this);
-            }
-        }
+        else if(_style->position() == RELATIVE)
+            setRelPositioned(true);
     }
+    
+    if ((isPositioned() || isRelPositioned() || isFloating()) && !m_layer)
+        m_layer = new RenderLayer(this);
 }
 
 RenderBox::~RenderBox()
diff --git a/WebCore/khtml/rendering/render_flow.cpp b/WebCore/khtml/rendering/render_flow.cpp
index 08bf435..cd7ea96 100644
--- a/WebCore/khtml/rendering/render_flow.cpp
+++ b/WebCore/khtml/rendering/render_flow.cpp
@@ -160,10 +160,6 @@ void RenderFlow::printObject(QPainter *p, int _x, int _y,
         child = child->nextSibling();
     }
 
-    // 3. print floats and other non-flow objects
-    if(specialObjects)
-        printSpecialObjects( p,  _x, _y, _w, _h, _tx , _ty);
-
     if(!isInline() && !childrenInline() && style()->outlineWidth())
         printOutline(p, _tx, _ty, width(), height(), style());
 
@@ -180,29 +176,6 @@ void RenderFlow::printObject(QPainter *p, int _x, int _y,
 
 }
 
-void RenderFlow::printSpecialObjects( QPainter *p, int x, int y, int w, int h, int tx, int ty)
-{
-    SpecialObject* r;
-    QPtrListIterator<SpecialObject> it(*specialObjects);
-    for ( ; (r = it.current()); ++it ) {
-        // A special object may be registered with several different objects... so we only print the
-        // object if we are its containing block
-        if ( ( r->node->isFloating() && !r->noPaint ) ) {
-           r->node->print(p, x, y, w, h, tx + r->left - r->node->xPos() + r->node->marginLeft(),
-                          ty + r->startY - r->node->yPos() + r->node->marginTop() );
- 	}
-#ifdef FLOAT_DEBUG
-	p->save();
-	p->setPen( Qt::magenta );
-	p->setBrush( QPainter::NoBrush );
-	//qDebug("(%p): special object at (%d/%d-%d/%d)", this, r->left, r->startY, r->width, r->endY - r->startY );
-	p->drawRect( QRect( r->left+tx, r->startY+ty, r->width, r->endY - r->startY) );
-	p->restore();
-#endif
-    }
-}
-
-
 void RenderFlow::layout()
 {
 //    kdDebug( 6040 ) << renderName() << " " << this << "::layout() start" << endl;
@@ -1033,10 +1006,6 @@ void RenderFlow::addOverHangingFloats( RenderFlow *flow, int xoff, int offset, b
 	if ( (int)r->type <= (int)SpecialObject::FloatRight &&
 	     ( ( !child && r->endY > offset ) ||
 	       ( child && flow->yPos() + r->endY > height() ) ) ) {
-
-	    if ( child )
-		r->noPaint = true;
-
 	    SpecialObject* f = 0;
 	    // don't insert it twice!
 	    QPtrListIterator<SpecialObject> it(*specialObjects);
@@ -1059,7 +1028,6 @@ void RenderFlow::addOverHangingFloats( RenderFlow *flow, int xoff, int offset, b
 		    special->left += flow->marginLeft();
 		if ( !child ) {
 		    special->left -= marginLeft();
-		    special->noPaint = true;
 		}
 		special->width = r->width;
 		special->node = r->node;
@@ -1653,8 +1621,7 @@ void RenderFlow::printTree(int indent) const
             s.fill(' ', indent);
             kdDebug() << s << renderName() << ":  " <<
                 (r->type == SpecialObject::FloatLeft ? "FloatLeft" : (r->type == SpecialObject::FloatRight ? "FloatRight" : "Positioned"))  <<
-                "[" << r->node->renderName() << ": " << (void*)r->node << "] (" << r->startY << " - " << r->endY << ")" <<
-                (r->noPaint ? "noPaint " : " ") << "width: " << r->width <<
+                "[" << r->node->renderName() << ": " << (void*)r->node << "] (" << r->startY << " - " << r->endY << ")" << "width: " << r->width <<
                 endl;
         }
     }
diff --git a/WebCore/khtml/rendering/render_flow.h b/WebCore/khtml/rendering/render_flow.h
index b92b104..e97fc87 100644
--- a/WebCore/khtml/rendering/render_flow.h
+++ b/WebCore/khtml/rendering/render_flow.h
@@ -64,9 +64,7 @@ public:
                         int tx, int ty);
     virtual void printObject( QPainter *, int x, int y, int w, int h,
                         int tx, int ty);
-    void printSpecialObjects( QPainter *, int x, int y, int w, int h,
-                        int tx, int ty);
-
+    
     virtual void layout( );
 
     virtual void close();
@@ -164,7 +162,6 @@ protected:
 	    left = 0;
 	    width = 0;
             count = 0;
-            noPaint = false;
 
         }
         RenderObject* node;
@@ -174,8 +171,7 @@ protected:
         short width;
         short count;
         Type type : 2; // left or right aligned
-        bool noPaint : 1;
-
+        
         bool operator==(const SpecialObject& ) const
         {
             return false;
diff --git a/WebCore/khtml/rendering/render_layer.cpp b/WebCore/khtml/rendering/render_layer.cpp
index d1c003b..ce626de 100644
--- a/WebCore/khtml/rendering/render_layer.cpp
+++ b/WebCore/khtml/rendering/render_layer.cpp
@@ -304,7 +304,7 @@ RenderLayer::constructZTree(QRect damageRect,
     // block elements, since inline non-replaced elements have a width of 0 (and
     // thus the layer does too).  We also exclude the root from this test, since
     // the HTML can be much taller than the root (because of scrolling).
-    if (renderer()->isRoot() || renderer()->isHtml() || renderer()->isBody() || 
+    if (renderer()->isRoot() || renderer()->isHtml() || renderer()->isBody() ||
         (renderer()->isInline() && !renderer()->isReplaced()) ||
         (eventProcessing && layerBounds.contains(damageRect.x(),
 						 damageRect.y())) ||
diff --git a/WebCore/khtml/rendering/render_root.cpp b/WebCore/khtml/rendering/render_root.cpp
index efd24b7..4f1baaf 100644
--- a/WebCore/khtml/rendering/render_root.cpp
+++ b/WebCore/khtml/rendering/render_root.cpp
@@ -223,9 +223,6 @@ void RenderRoot::printObject(QPainter *p, int _x, int _y,
         _ty += m_view->contentsY();
     }
 
-    if(specialObjects)
-        printSpecialObjects(p, _x, _y, _w, _h, _tx, _ty);
-
 #ifdef BOX_DEBUG
     outlineBox(p, _tx, _ty);
 #endif
diff --git a/WebCore/khtml/rendering/render_table.cpp b/WebCore/khtml/rendering/render_table.cpp
index b24d7d0..e131172 100644
--- a/WebCore/khtml/rendering/render_table.cpp
+++ b/WebCore/khtml/rendering/render_table.cpp
@@ -1694,9 +1694,6 @@ void RenderTable::print( QPainter *p, int _x, int _y,
 	}
     }
 
-    if ( specialObjects )
-	printSpecialObjects( p, _x, _y, _w, _h, _tx, _ty);
-
 #ifdef BOX_DEBUG
     outlineBox(p, _tx, _ty, "blue");
 #endif

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list