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


The following commit has been merged in the debian/unstable branch:
commit 58ba74d31c1a54fd47ec3efa6771957e847d5fcd
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Apr 27 01:24:47 2004 +0000

    	Fix for Emerson truncation problem using apple-line-clamp.  Always dirty positioned objects so that they
    	will move when the height changes.
    
            Reviewed by darin
    
            * khtml/rendering/render_block.cpp:
            (khtml::RenderBlock::markPositionedObjectsForLayout):
            * khtml/rendering/render_block.h:
            * khtml/rendering/render_flexbox.cpp:
            (khtml::RenderFlexibleBox::layoutVerticalBox):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@6492 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 425a1ab..5e19ae9 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,16 @@
+2004-04-26  David Hyatt  <hyatt at apple.com>
+
+	Fix for Emerson truncation problem using apple-line-clamp.  Always dirty positioned objects so that they
+	will move when the height changes.
+	
+        Reviewed by darin
+
+        * khtml/rendering/render_block.cpp:
+        (khtml::RenderBlock::markPositionedObjectsForLayout):
+        * khtml/rendering/render_block.h:
+        * khtml/rendering/render_flexbox.cpp:
+        (khtml::RenderFlexibleBox::layoutVerticalBox):
+
 2004-04-26  Richard Williamson   <rjw at apple.com>
 
 	Added support for specifying composite operation on an
diff --git a/WebCore/khtml/rendering/render_block.cpp b/WebCore/khtml/rendering/render_block.cpp
index c0d2b22..8fe303e 100644
--- a/WebCore/khtml/rendering/render_block.cpp
+++ b/WebCore/khtml/rendering/render_block.cpp
@@ -1132,6 +1132,16 @@ void RenderBlock::layoutPositionedObjects(bool relayoutChildren)
     }
 }
 
+void RenderBlock::markPositionedObjectsForLayout()
+{
+    if (m_positionedObjects) {
+        RenderObject* r;
+        QPtrListIterator<RenderObject> it(*m_positionedObjects);
+        for (; (r = it.current()); ++it)
+            r->setChildNeedsLayout(true);
+    }
+}
+
 void RenderBlock::getAbsoluteRepaintRectIncludingFloats(QRect& bounds, QRect& fullBounds)
 {
     bounds = fullBounds = getAbsoluteRepaintRect();
diff --git a/WebCore/khtml/rendering/render_block.h b/WebCore/khtml/rendering/render_block.h
index 6495f18..9f68842 100644
--- a/WebCore/khtml/rendering/render_block.h
+++ b/WebCore/khtml/rendering/render_block.h
@@ -140,7 +140,8 @@ public:
     void clearFloats();
     int getClearDelta(RenderObject *child);
     virtual void markAllDescendantsWithFloatsForLayout(RenderObject* floatToRemove = 0);
-    
+    void markPositionedObjectsForLayout();
+
     virtual bool containsFloats() { return m_floatingObjects!=0; }
     virtual bool containsFloat(RenderObject* o);
 
diff --git a/WebCore/khtml/rendering/render_flexbox.cpp b/WebCore/khtml/rendering/render_flexbox.cpp
index ea36c97..efc4de3 100644
--- a/WebCore/khtml/rendering/render_flexbox.cpp
+++ b/WebCore/khtml/rendering/render_flexbox.cpp
@@ -684,8 +684,12 @@ void RenderFlexibleBox::layoutVerticalBox(bool relayoutChildren)
         while (child) {
             if (!child->isPositioned()) {
                 if (relayoutChildren || (child->isReplaced() && (child->style()->width().isPercent() || child->style()->height().isPercent())) ||
-                    (child->style()->height().isVariable() && child->isBlockFlow() && !child->needsLayout()))
+                    (child->style()->height().isVariable() && child->isBlockFlow() && !child->needsLayout())) {
                     child->setChildNeedsLayout(true);
+                    
+                    // Dirty all the positioned objects.
+                    static_cast<RenderBlock*>(child)->markPositionedObjectsForLayout();
+                }
                 child->layoutIfNeeded();
                 if (child->style()->height().isVariable() && child->isBlockFlow())
                     maxLineCount = kMax(maxLineCount, static_cast<RenderBlock*>(child)->lineCount());
@@ -708,6 +712,7 @@ void RenderFlexibleBox::layoutVerticalBox(bool relayoutChildren)
                         m_flexingChildren = true;
                         child->layoutIfNeeded();
                         m_flexingChildren = false;
+                        child->style()->setBoxFlexedHeight(-1);
                     }
                 }
                 child = iterator.next();

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list