[SCM] WebKit Debian packaging branch, webkit-1.3, updated. upstream/1.3.7-4207-g178b198

jamesr at google.com jamesr at google.com
Sun Feb 20 22:48:45 UTC 2011


The following commit has been merged in the webkit-1.3 branch:
commit 81174f4087c2ba40a6cc09277b159ded2c87110b
Author: jamesr at google.com <jamesr at google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Jan 11 20:47:51 2011 +0000

    2011-01-11  James Robinson  <jamesr at chromium.org>
    
            Reviewed by Dimitri Glazkov.
    
            Set all RenderBlocks as replaced when an inline display type is specified
            https://bugs.webkit.org/show_bug.cgi?id=50858
    
            When a RenderBlock is created for an element with a specified display:inline style,
            it should always be treated as inline-block.  This situations often comes up for form
            controls.  Previously, RenderBlock::styleWillChange set the replaced flag for display
            values of inline-block, inline-table, and inline-table and a number of subclasses of
            RenderBlock set the replaced flag in styleDidChange for a display:inline.  However
            sometimes new subclasses would miss this step leading to bugs (such as with RenderDetails).
            This patch sets the replaced flag for all inline display types in RenderBlock::styleWillChange.
    
            Code cleanup only, no change in behavior so no new tests.
    
            * rendering/RenderBlock.cpp:
            (WebCore::RenderBlock::styleWillChange):
            * rendering/RenderButton.cpp:
            (WebCore::RenderButton::styleDidChange):
            * rendering/RenderFieldset.cpp:
            * rendering/RenderFieldset.h:
            * rendering/RenderFileUploadControl.cpp:
            (WebCore::RenderFileUploadControl::styleDidChange):
            * rendering/RenderListBox.cpp:
            * rendering/RenderListBox.h:
            * rendering/RenderMenuList.cpp:
            (WebCore::RenderMenuList::styleDidChange):
            * rendering/RenderSlider.cpp:
            (WebCore::RenderSlider::styleDidChange):
            * rendering/RenderTextControl.cpp:
            (WebCore::RenderTextControl::styleDidChange):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@75537 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 0e7641c..67fb77f 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,37 @@
+2011-01-11  James Robinson  <jamesr at chromium.org>
+
+        Reviewed by Dimitri Glazkov.
+
+        Set all RenderBlocks as replaced when an inline display type is specified
+        https://bugs.webkit.org/show_bug.cgi?id=50858
+
+        When a RenderBlock is created for an element with a specified display:inline style,
+        it should always be treated as inline-block.  This situations often comes up for form
+        controls.  Previously, RenderBlock::styleWillChange set the replaced flag for display
+        values of inline-block, inline-table, and inline-table and a number of subclasses of
+        RenderBlock set the replaced flag in styleDidChange for a display:inline.  However
+        sometimes new subclasses would miss this step leading to bugs (such as with RenderDetails).
+        This patch sets the replaced flag for all inline display types in RenderBlock::styleWillChange.
+
+        Code cleanup only, no change in behavior so no new tests.
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::styleWillChange):
+        * rendering/RenderButton.cpp:
+        (WebCore::RenderButton::styleDidChange):
+        * rendering/RenderFieldset.cpp:
+        * rendering/RenderFieldset.h:
+        * rendering/RenderFileUploadControl.cpp:
+        (WebCore::RenderFileUploadControl::styleDidChange):
+        * rendering/RenderListBox.cpp:
+        * rendering/RenderListBox.h:
+        * rendering/RenderMenuList.cpp:
+        (WebCore::RenderMenuList::styleDidChange):
+        * rendering/RenderSlider.cpp:
+        (WebCore::RenderSlider::styleDidChange):
+        * rendering/RenderTextControl.cpp:
+        (WebCore::RenderTextControl::styleDidChange):
+
 2011-01-11  Dimitri Glazkov  <dglazkov at chromium.org>
 
         Reviewed by Eric Seidel.
diff --git a/Source/WebCore/rendering/RenderBlock.cpp b/Source/WebCore/rendering/RenderBlock.cpp
index 7eba470..e39223a 100644
--- a/Source/WebCore/rendering/RenderBlock.cpp
+++ b/Source/WebCore/rendering/RenderBlock.cpp
@@ -188,7 +188,7 @@ void RenderBlock::destroy()
 
 void RenderBlock::styleWillChange(StyleDifference diff, const RenderStyle* newStyle)
 {
-    setReplaced(newStyle->isDisplayReplacedType());
+    setReplaced(newStyle->isDisplayInlineType());
     
     if (style() && parent() && diff == StyleDifferenceLayout && style()->position() != newStyle->position()) {
         if (newStyle->position() == StaticPosition)
diff --git a/Source/WebCore/rendering/RenderButton.cpp b/Source/WebCore/rendering/RenderButton.cpp
index 2642f23..4bf7c19 100644
--- a/Source/WebCore/rendering/RenderButton.cpp
+++ b/Source/WebCore/rendering/RenderButton.cpp
@@ -92,7 +92,6 @@ void RenderButton::styleDidChange(StyleDifference diff, const RenderStyle* oldSt
         m_buttonText->setStyle(style());
     if (m_inner) // RenderBlock handled updating the anonymous block's style.
         setupInnerStyle(m_inner->style());
-    setReplaced(isInline());
 
     if (!m_default && theme()->isDefault(this)) {
         if (!m_timer)
diff --git a/Source/WebCore/rendering/RenderFieldset.cpp b/Source/WebCore/rendering/RenderFieldset.cpp
index c83396c..fd91472 100644
--- a/Source/WebCore/rendering/RenderFieldset.cpp
+++ b/Source/WebCore/rendering/RenderFieldset.cpp
@@ -208,16 +208,4 @@ void RenderFieldset::paintMask(PaintInfo& paintInfo, int tx, int ty)
     paintMaskImages(paintInfo, tx, ty, w, h);
 }
 
-void RenderFieldset::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)
-{
-    RenderBlock::styleDidChange(diff, oldStyle);
-
-    // WinIE renders fieldsets with display:inline like they're inline-blocks.  For us,
-    // an inline-block is just a block element with replaced set to true and inline set
-    // to true.  Ensure that if we ended up being inline that we set our replaced flag
-    // so that we're treated like an inline-block.
-    if (isInline())
-        setReplaced(true);
-}    
-
 } // namespace WebCore
diff --git a/Source/WebCore/rendering/RenderFieldset.h b/Source/WebCore/rendering/RenderFieldset.h
index b340794..267f352 100644
--- a/Source/WebCore/rendering/RenderFieldset.h
+++ b/Source/WebCore/rendering/RenderFieldset.h
@@ -44,8 +44,6 @@ private:
     virtual bool avoidsFloats() const { return true; }
     virtual bool stretchesToMinIntrinsicLogicalWidth() const { return true; }
 
-    virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
-
     virtual void paintBoxDecorations(PaintInfo&, int tx, int ty);
     virtual void paintMask(PaintInfo&, int tx, int ty);
 };
diff --git a/Source/WebCore/rendering/RenderFileUploadControl.cpp b/Source/WebCore/rendering/RenderFileUploadControl.cpp
index 3c10f43..8c50677 100644
--- a/Source/WebCore/rendering/RenderFileUploadControl.cpp
+++ b/Source/WebCore/rendering/RenderFileUploadControl.cpp
@@ -74,8 +74,6 @@ void RenderFileUploadControl::styleDidChange(StyleDifference diff, const RenderS
     RenderBlock::styleDidChange(diff, oldStyle);
     if (m_button)
         m_button->renderer()->setStyle(createButtonStyle(style()));
-
-    setReplaced(isInline());
 }
 
 void RenderFileUploadControl::valueChanged()
diff --git a/Source/WebCore/rendering/RenderListBox.cpp b/Source/WebCore/rendering/RenderListBox.cpp
index ed7f8ee..66a2342 100644
--- a/Source/WebCore/rendering/RenderListBox.cpp
+++ b/Source/WebCore/rendering/RenderListBox.cpp
@@ -87,12 +87,6 @@ RenderListBox::~RenderListBox()
     setHasVerticalScrollbar(false);
 }
 
-void RenderListBox::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)
-{
-    RenderBlock::styleDidChange(diff, oldStyle);
-    setReplaced(isInline());
-}
-
 void RenderListBox::updateFromElement()
 {
     if (m_optionsChanged) {
diff --git a/Source/WebCore/rendering/RenderListBox.h b/Source/WebCore/rendering/RenderListBox.h
index 1fbff0d..243fcbe 100644
--- a/Source/WebCore/rendering/RenderListBox.h
+++ b/Source/WebCore/rendering/RenderListBox.h
@@ -94,8 +94,6 @@ private:
 
     virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, int x, int y, int tx, int ty, HitTestAction);
 
-    virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
-
     // ScrollbarClient interface.
     virtual int scrollSize(ScrollbarOrientation orientation) const;
     virtual void setScrollOffsetFromAnimation(const IntPoint&);
diff --git a/Source/WebCore/rendering/RenderMenuList.cpp b/Source/WebCore/rendering/RenderMenuList.cpp
index 5ad661f..61f1084 100644
--- a/Source/WebCore/rendering/RenderMenuList.cpp
+++ b/Source/WebCore/rendering/RenderMenuList.cpp
@@ -123,8 +123,6 @@ void RenderMenuList::styleDidChange(StyleDifference diff, const RenderStyle* old
     if (m_innerBlock) // RenderBlock handled updating the anonymous block's style.
         adjustInnerStyle();
 
-    setReplaced(isInline());
-
     bool fontChanged = !oldStyle || oldStyle->font() != style()->font();
     if (fontChanged)
         updateOptionsWidth();
diff --git a/Source/WebCore/rendering/RenderSlider.cpp b/Source/WebCore/rendering/RenderSlider.cpp
index b73a1ac..ef88c1d 100644
--- a/Source/WebCore/rendering/RenderSlider.cpp
+++ b/Source/WebCore/rendering/RenderSlider.cpp
@@ -106,8 +106,6 @@ void RenderSlider::styleDidChange(StyleDifference diff, const RenderStyle* oldSt
 
     if (m_thumb)
         m_thumb->renderer()->setStyle(createThumbStyle(style()));
-
-    setReplaced(isInline());
 }
 
 PassRefPtr<RenderStyle> RenderSlider::createThumbStyle(const RenderStyle* parentStyle)
diff --git a/Source/WebCore/rendering/RenderTextControl.cpp b/Source/WebCore/rendering/RenderTextControl.cpp
index 0192ee4..b2db9e8 100644
--- a/Source/WebCore/rendering/RenderTextControl.cpp
+++ b/Source/WebCore/rendering/RenderTextControl.cpp
@@ -97,8 +97,6 @@ void RenderTextControl::styleDidChange(StyleDifference diff, const RenderStyle*
         textBlockRenderer->style()->setWidth(Length());
         setInnerTextStyle(textBlockStyle);
     }
-
-    setReplaced(isInline());
 }
 
 void RenderTextControl::setInnerTextStyle(PassRefPtr<RenderStyle> style)

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list