[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 07:35:03 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 02d687a791332b1b57797bb2a13b63ca0816560e
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Apr 8 00:36:04 2003 +0000

    	Fix for the scrollbar problem in 3220395.  Does not yet fix
    	the overlap problem.  lowest/rightmostPosition got broken by
    	the RenderFlow split.  This patch makes sure that we still crawl
    	into inlines with overhangingContents.
    
            Reviewed by darin
    
            * khtml/rendering/render_block.cpp:
            * khtml/rendering/render_flow.cpp:
            (RenderFlow::lowestPosition):
            (RenderFlow::rightmostPosition):
            * khtml/rendering/render_flow.h:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@4037 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index fdf59cd..28a5ab4 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,5 +1,20 @@
 2003-04-07  David Hyatt  <hyatt at apple.com>
 
+	Fix for the scrollbar problem in 3220395.  Does not yet fix
+	the overlap problem.  lowest/rightmostPosition got broken by
+	the RenderFlow split.  This patch makes sure that we still crawl
+	into inlines with overhangingContents.
+	
+        Reviewed by darin
+
+        * khtml/rendering/render_block.cpp:
+        * khtml/rendering/render_flow.cpp:
+        (RenderFlow::lowestPosition):
+        (RenderFlow::rightmostPosition):
+        * khtml/rendering/render_flow.h:
+
+2003-04-07  David Hyatt  <hyatt at apple.com>
+
 	* khtml/html/htmlparser.cpp:
 	(KHTMLParser::handleResidualStyleCloseTagAcrossBlocks):
 
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index fdf59cd..28a5ab4 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,5 +1,20 @@
 2003-04-07  David Hyatt  <hyatt at apple.com>
 
+	Fix for the scrollbar problem in 3220395.  Does not yet fix
+	the overlap problem.  lowest/rightmostPosition got broken by
+	the RenderFlow split.  This patch makes sure that we still crawl
+	into inlines with overhangingContents.
+	
+        Reviewed by darin
+
+        * khtml/rendering/render_block.cpp:
+        * khtml/rendering/render_flow.cpp:
+        (RenderFlow::lowestPosition):
+        (RenderFlow::rightmostPosition):
+        * khtml/rendering/render_flow.h:
+
+2003-04-07  David Hyatt  <hyatt at apple.com>
+
 	* khtml/html/htmlparser.cpp:
 	(KHTMLParser::handleResidualStyleCloseTagAcrossBlocks):
 
diff --git a/WebCore/khtml/rendering/render_block.cpp b/WebCore/khtml/rendering/render_block.cpp
index 959670a..3d7ab7d 100644
--- a/WebCore/khtml/rendering/render_block.cpp
+++ b/WebCore/khtml/rendering/render_block.cpp
@@ -1480,20 +1480,7 @@ RenderBlock::lowestPosition() const
     
     // FIXME: Maybe we can use m_overflowHeight instead?
 
-    int bottom = RenderBox::lowestPosition();
-
-    // FIXME: Used to do nothing here in the m_childrenInline case,
-    // but that demonstrably didn't work (layout tests failed).
-    // FIXME: Is it still OK to look only at the last non-floating
-    // non-positioned child? Testing indicates it is, but is the concept
-    // 100% right?
-    for (RenderObject *c = lastChild(); c; c = c->previousSibling()) {
-        if (!c->isFloatingOrPositioned()) {
-            int lp = c->yPos() + c->lowestPosition();
-            bottom = QMAX(bottom, lp);
-            break;
-        }
-    }
+    int bottom = RenderFlow::lowestPosition();
 
     if (m_floatingObjects) {
         FloatingObject* r;
@@ -1528,14 +1515,7 @@ int RenderBlock::rightmostPosition() const
     
     // FIXME: Maybe we can use m_overflowWidth instead?
 
-    int right = RenderBox::rightmostPosition();
-
-    for (RenderObject *c = firstChild(); c; c = c->nextSibling()) {
-        if (!c->isFloatingOrPositioned()) {
-            int rp = c->xPos() + c->rightmostPosition();
-            right = QMAX(right, rp);
-	}
-    }
+    int right = RenderFlow::rightmostPosition();
 
     if (m_floatingObjects) {
         FloatingObject* r;
diff --git a/WebCore/khtml/rendering/render_flow.cpp b/WebCore/khtml/rendering/render_flow.cpp
index a256bc1..dc45065 100644
--- a/WebCore/khtml/rendering/render_flow.cpp
+++ b/WebCore/khtml/rendering/render_flow.cpp
@@ -264,3 +264,44 @@ void RenderFlow::repaint(bool immediate)
     }
 }
 
+int
+RenderFlow::lowestPosition() const
+{
+    int bottom = RenderBox::lowestPosition();
+
+    // FIXME: It's not OK to look only at the last non-floating
+    // non-positioned child (e.g., negative margins, or a child that itself has
+    // overflow that goes beyond the last child).  We want to switch over to using overflow,
+    // but we tried it and it didn't work, so there must be some issues with overflow that
+    // still need to be worked out.    
+    bool checkOverhangsOnly = !isRenderBlock() && overhangingContents();
+    if (isRenderBlock() || checkOverhangsOnly) {
+        for (RenderObject *c = lastChild(); c; c = c->previousSibling()) {
+            if (!c->isFloatingOrPositioned() && (!checkOverhangsOnly || c->overhangingContents())) {
+                int lp = c->yPos() + c->lowestPosition();
+                bottom = QMAX(bottom, lp);
+                break;
+            }
+        }
+    }
+    
+    return bottom;
+}
+
+int RenderFlow::rightmostPosition() const
+{
+    int right = RenderBox::rightmostPosition();
+
+    // FIXME: We want to switch over to using overflow,
+    // but we tried it and it didn't work, so there must be some issues with overflow that
+    // still need to be worked out.
+    for (RenderObject *c = firstChild(); c; c = c->nextSibling()) {
+        if (!c->isFloatingOrPositioned()) {
+            int rp = c->xPos() + c->rightmostPosition();
+            right = QMAX(right, rp);
+        }
+    }
+    
+    return right;
+}
+
diff --git a/WebCore/khtml/rendering/render_flow.h b/WebCore/khtml/rendering/render_flow.h
index 95d27bc..13bbda3 100644
--- a/WebCore/khtml/rendering/render_flow.h
+++ b/WebCore/khtml/rendering/render_flow.h
@@ -70,6 +70,9 @@ public:
                                  int _w, int _h, int _tx, int _ty, PaintAction paintAction);
 
     virtual void repaint(bool immediate = false);
+
+    virtual int lowestPosition() const;
+    virtual int rightmostPosition() const;
     
 protected:
     // An inline can be split with blocks occurring in between the inline content.

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list