Changeset 37464 in webkit
- Timestamp:
- Oct 9, 2008 8:15:31 PM (16 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 47 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r37463 r37464 1 2008-10-09 Simon Fraser <simon.fraser@apple.com> 2 3 Reviewed by Dave Hyatt 4 5 https://bugs.webkit.org/show_bug.cgi?id=20947 6 7 Refactor setStyle() methods into styleWillChange() 8 and styleDidChange(), so most of the setStyle() overrides can 9 be removed. 10 11 * rendering/RenderBR.cpp: 12 (WebCore::RenderBR::styleDidChange): 13 * rendering/RenderBR.h: 14 * rendering/RenderBlock.cpp: 15 (WebCore::RenderBlock::styleWillChange): 16 (WebCore::RenderBlock::styleDidChange): 17 * rendering/RenderBlock.h: 18 * rendering/RenderBox.cpp: 19 (WebCore::RenderBox::~RenderBox): 20 (WebCore::RenderBox::destroy): 21 (WebCore::RenderBox::styleWillChange): 22 (WebCore::RenderBox::styleDidChange): 23 * rendering/RenderBox.h: 24 * rendering/RenderButton.cpp: 25 (WebCore::RenderButton::styleWillChange): 26 (WebCore::RenderButton::styleDidChange): 27 * rendering/RenderButton.h: 28 * rendering/RenderFieldset.cpp: 29 (WebCore::RenderFieldset::styleDidChange): 30 * rendering/RenderFieldset.h: 31 * rendering/RenderFileUploadControl.cpp: 32 (WebCore::RenderFileUploadControl::styleDidChange): 33 * rendering/RenderFileUploadControl.h: 34 * rendering/RenderInline.cpp: 35 (WebCore::RenderInline::styleDidChange): 36 * rendering/RenderInline.h: 37 * rendering/RenderLayer.cpp: 38 (WebCore::RenderLayer::styleChanged): 39 * rendering/RenderLayer.h: 40 * rendering/RenderListBox.cpp: 41 (WebCore::RenderListBox::styleDidChange): 42 * rendering/RenderListBox.h: 43 * rendering/RenderListItem.cpp: 44 (WebCore::RenderListItem::styleDidChange): 45 * rendering/RenderListItem.h: 46 * rendering/RenderListMarker.cpp: 47 (WebCore::RenderListMarker::styleWillChange): 48 (WebCore::RenderListMarker::styleDidChange): 49 * rendering/RenderListMarker.h: 50 * rendering/RenderMenuList.cpp: 51 (WebCore::RenderMenuList::styleDidChange): 52 * rendering/RenderMenuList.h: 53 * rendering/RenderObject.cpp: 54 (WebCore::RenderObject::setStyle): 55 (WebCore::RenderObject::setStyleInternal): 56 (WebCore::RenderObject::styleWillChange): 57 (WebCore::RenderObject::styleDidChange): 58 * rendering/RenderObject.h: 59 * rendering/RenderReplaced.cpp: 60 (WebCore::RenderReplaced::styleDidChange): 61 * rendering/RenderReplaced.h: 62 * rendering/RenderSVGGradientStop.cpp: 63 (WebCore::RenderSVGGradientStop::styleDidChange): 64 * rendering/RenderSVGGradientStop.h: 65 * rendering/RenderScrollbarPart.cpp: 66 (WebCore::RenderScrollbarPart::styleDidChange): 67 * rendering/RenderScrollbarPart.h: 68 * rendering/RenderSlider.cpp: 69 (WebCore::RenderSlider::styleDidChange): 70 * rendering/RenderSlider.h: 71 * rendering/RenderTable.cpp: 72 (WebCore::RenderTable::styleDidChange): 73 * rendering/RenderTable.h: 74 * rendering/RenderTableCell.cpp: 75 (WebCore::RenderTableCell::styleWillChange): 76 (WebCore::RenderTableCell::styleDidChange): 77 * rendering/RenderTableCell.h: 78 * rendering/RenderTableRow.cpp: 79 (WebCore::RenderTableRow::styleWillChange): 80 * rendering/RenderTableRow.h: 81 * rendering/RenderText.cpp: 82 (WebCore::RenderText::styleDidChange): 83 * rendering/RenderText.h: 84 * rendering/RenderTextControl.cpp: 85 (WebCore::RenderTextControl::styleDidChange): 86 * rendering/RenderTextControl.h: 87 * rendering/RenderWidget.cpp: 88 (WebCore::RenderWidget::styleDidChange): 89 * rendering/RenderWidget.h: 90 1 91 2008-10-09 David Hyatt <hyatt@apple.com> 2 92 -
trunk/WebCore/rendering/RenderBR.cpp
r37252 r37464 83 83 } 84 84 85 void RenderBR::s etStyle(const RenderStyle* newStyle)85 void RenderBR::styleDidChange(RenderStyle::Diff diff, const RenderStyle* oldStyle) 86 86 { 87 RenderText::s etStyle(newStyle);87 RenderText::styleDidChange(diff, oldStyle); 88 88 m_lineHeight = -1; 89 89 } -
trunk/WebCore/rendering/RenderBR.h
r37252 r37464 48 48 virtual int lineHeight(bool firstLine, bool isRootLineBox = false) const; 49 49 virtual int baselinePosition(bool firstLine, bool isRootLineBox = false) const; 50 virtual void setStyle(const RenderStyle*);51 50 52 51 // overrides … … 61 60 virtual VisiblePosition positionForCoordinates(int x, int y); 62 61 62 protected: 63 virtual void styleDidChange(RenderStyle::Diff, const RenderStyle* oldStyle); 64 63 65 private: 64 66 mutable int m_lineHeight; -
trunk/WebCore/rendering/RenderBlock.cpp
r37252 r37464 147 147 } 148 148 149 void RenderBlock::s etStyle(const RenderStyle* newStyle)149 void RenderBlock::styleWillChange(RenderStyle::Diff diff, const RenderStyle* newStyle) 150 150 { 151 151 setReplaced(newStyle->isDisplayReplacedType()); 152 153 RenderFlow::setStyle(newStyle); 152 RenderFlow::styleWillChange(diff, newStyle); 153 } 154 155 void RenderBlock::styleDidChange(RenderStyle::Diff diff, const RenderStyle* oldStyle) 156 { 157 RenderFlow::styleDidChange(diff, oldStyle); 154 158 155 159 // FIXME: We could save this call when the change only affected non-inherited properties -
trunk/WebCore/rendering/RenderBlock.h
r37252 r37464 107 107 virtual void repaintOverhangingFloats(bool paintAllDescendants); 108 108 109 virtual void setStyle(const RenderStyle*);110 111 109 virtual void layout(); 112 110 virtual void layoutBlock(bool relayoutChildren); … … 314 312 315 313 protected: 314 virtual void styleWillChange(RenderStyle::Diff, const RenderStyle* newStyle); 315 virtual void styleDidChange(RenderStyle::Diff, const RenderStyle* oldStyle); 316 316 317 void newLine(EClear); 317 318 virtual bool hasLineIfEmpty() const; -
trunk/WebCore/rendering/RenderBox.cpp
r37252 r37464 51 51 52 52 using namespace HTMLNames; 53 53 54 54 // Used by flexible boxes when flexing this element. 55 55 typedef WTF::HashMap<const RenderBox*, int> OverrideSizeMap; 56 56 static OverrideSizeMap* gOverrideSizeMap = 0; 57 58 bool RenderBox::s_wasFloating = false; 59 bool RenderBox::s_hadOverflowClip = false; 57 60 58 61 RenderBox::RenderBox(Node* node) … … 73 76 } 74 77 75 void RenderBox::setStyle(const RenderStyle* newStyle) 76 { 77 bool wasFloating = isFloating(); 78 bool hadOverflowClip = hasOverflowClip(); 79 80 RenderStyle* oldStyle = style(); 81 if (oldStyle) 82 oldStyle->ref(); 83 84 RenderObject::setStyle(newStyle); 78 RenderBox::~RenderBox() 79 { 80 } 81 82 void RenderBox::destroy() 83 { 84 // A lot of the code in this function is just pasted into 85 // RenderWidget::destroy. If anything in this function changes, 86 // be sure to fix RenderWidget::destroy() as well. 87 if (hasOverrideSize()) 88 gOverrideSizeMap->remove(this); 89 90 // This must be done before we destroy the RenderObject. 91 if (m_layer) 92 m_layer->clearClipRect(); 93 94 if (style() && (style()->height().isPercent() || style()->minHeight().isPercent() || style()->maxHeight().isPercent())) 95 RenderBlock::removePercentHeightDescendant(this); 96 97 RenderObject::destroy(); 98 } 99 100 void RenderBox::styleWillChange(RenderStyle::Diff diff, const RenderStyle* newStyle) 101 { 102 s_wasFloating = isFloating(); 103 s_hadOverflowClip = hasOverflowClip(); 104 105 RenderObject::styleWillChange(diff, newStyle); 106 } 107 108 void RenderBox::styleDidChange(RenderStyle::Diff diff, const RenderStyle* oldStyle) 109 { 110 RenderObject::styleDidChange(diff, oldStyle); 85 111 86 112 if (needsLayout() && oldStyle && (oldStyle->height().isPercent() || oldStyle->minHeight().isPercent() || oldStyle->maxHeight().isPercent())) … … 91 117 setHasBoxDecorations(true); 92 118 93 setInline( newStyle->isDisplayInlineType());94 95 switch ( newStyle->position()) {119 setInline(style()->isDisplayInlineType()); 120 121 switch (style()->position()) { 96 122 case AbsolutePosition: 97 123 case FixedPosition: … … 101 127 setPositioned(false); 102 128 103 if ( newStyle->isFloating())129 if (style()->isFloating()) 104 130 setFloating(true); 105 131 106 if ( newStyle->position() == RelativePosition)132 if (style()->position() == RelativePosition) 107 133 setRelPositioned(true); 134 break; 108 135 } 109 136 … … 112 139 // Check for overflow clip. 113 140 // It's sufficient to just check one direction, since it's illegal to have visible on only one overflow value. 114 if ( newStyle->overflowX() != OVISIBLE) {115 if (! hadOverflowClip)141 if (style()->overflowX() != OVISIBLE) { 142 if (!s_hadOverflowClip) 116 143 // Erase the overflow 117 144 repaint(); … … 120 147 } 121 148 122 setHasTransform( newStyle->hasTransform());123 setHasReflection( newStyle->boxReflect());149 setHasTransform(style()->hasTransform()); 150 setHasReflection(style()->boxReflect()); 124 151 125 152 if (requiresLayer()) { 126 153 if (!m_layer) { 127 if ( wasFloating && isFloating())154 if (s_wasFloating && isFloating()) 128 155 setChildNeedsLayout(true); 129 156 m_layer = new (renderArena()) RenderLayer(this); … … 141 168 setHasReflection(false); 142 169 layer->removeOnlyThisLayer(); 143 if ( wasFloating && isFloating())170 if (s_wasFloating && isFloating()) 144 171 setChildNeedsLayout(true); 145 172 } … … 161 188 162 189 if (m_layer) 163 m_layer->styleChanged( oldStyle);190 m_layer->styleChanged(diff, oldStyle); 164 191 165 192 // Set the text color if we're the body. 166 193 if (isBody()) 167 document()->setTextColor( newStyle->color());194 document()->setTextColor(style()->color()); 168 195 169 196 if (style()->outlineWidth() > 0 && style()->outlineSize() > maximalOutlineSize(PaintPhaseOutline)) 170 197 static_cast<RenderView*>(document()->renderer())->setMaximalOutlineSize(style()->outlineSize()); 171 172 if (oldStyle)173 oldStyle->deref(renderArena());174 }175 176 RenderBox::~RenderBox()177 {178 }179 180 void RenderBox::destroy()181 {182 // A lot of the code in this function is just pasted into183 // RenderWidget::destroy. If anything in this function changes,184 // be sure to fix RenderWidget::destroy() as well.185 if (hasOverrideSize())186 gOverrideSizeMap->remove(this);187 188 // This must be done before we destroy the RenderObject.189 if (m_layer)190 m_layer->clearClipRect();191 192 if (style() && (style()->height().isPercent() || style()->minHeight().isPercent() || style()->maxHeight().isPercent()))193 RenderBlock::removePercentHeightDescendant(this);194 195 RenderObject::destroy();196 198 } 197 199 -
trunk/WebCore/rendering/RenderBox.h
r37252 r37464 37 37 virtual const char* renderName() const { return "RenderBox"; } 38 38 39 virtual void setStyle(const RenderStyle*);40 39 virtual void paint(PaintInfo&, int tx, int ty); 41 40 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, int x, int y, int tx, int ty, HitTestAction); … … 174 173 175 174 protected: 175 virtual void styleWillChange(RenderStyle::Diff, const RenderStyle* newStyle); 176 virtual void styleDidChange(RenderStyle::Diff, const RenderStyle* oldStyle); 177 176 178 void paintFillLayer(const PaintInfo&, const Color&, const FillLayer*, int clipY, int clipHeight, int tx, int ty, int width, int height, CompositeOperator = CompositeSourceOver); 177 179 void paintFillLayers(const PaintInfo&, const Color&, const FillLayer*, int clipY, int clipHeight, int tx, int ty, int width, int height, CompositeOperator = CompositeSourceOver); … … 239 241 // For inline replaced elements, the inline box that owns us. 240 242 InlineBox* m_inlineBoxWrapper; 243 244 private: 245 // Used to store state between styleWillChange and styleDidChange 246 static bool s_wasFloating; 247 static bool s_hadOverflowClip; 241 248 }; 242 249 -
trunk/WebCore/rendering/RenderButton.cpp
r37252 r37464 65 65 } 66 66 67 void RenderButton::s etStyle(const RenderStyle* style)67 void RenderButton::styleWillChange(RenderStyle::Diff diff, const RenderStyle* newStyle) 68 68 { 69 69 if (m_inner) { … … 74 74 m_inner->style()->setBoxFlex(0); 75 75 } 76 RenderBlock::setStyle(style); 76 RenderBlock::styleWillChange(diff, newStyle); 77 } 78 79 void RenderButton::styleDidChange(RenderStyle::Diff diff, const RenderStyle* oldStyle) 80 { 81 RenderBlock::styleDidChange(diff, oldStyle); 82 77 83 if (m_buttonText) 78 m_buttonText->setStyle(style );84 m_buttonText->setStyle(style()); 79 85 if (m_inner) // RenderBlock handled updating the anonymous block's style. 80 86 m_inner->style()->setBoxFlex(1.0f); -
trunk/WebCore/rendering/RenderButton.h
r37252 r37464 46 46 virtual bool createsAnonymousWrapper() const { return true; } 47 47 48 virtual void setStyle(const RenderStyle*);49 48 virtual void updateFromElement(); 50 49 … … 59 58 60 59 protected: 60 virtual void styleWillChange(RenderStyle::Diff, const RenderStyle* newStyle); 61 virtual void styleDidChange(RenderStyle::Diff, const RenderStyle* oldStyle); 62 61 63 virtual bool hasLineIfEmpty() const { return true; } 62 64 -
trunk/WebCore/rendering/RenderFieldset.cpp
r37252 r37464 261 261 } 262 262 263 void RenderFieldset::s etStyle(const RenderStyle* newStyle)264 { 265 RenderBlock::s etStyle(newStyle);263 void RenderFieldset::styleDidChange(RenderStyle::Diff diff, const RenderStyle* oldStyle) 264 { 265 RenderBlock::styleDidChange(diff, oldStyle); 266 266 267 267 // WinIE renders fieldsets with display:inline like they're inline-blocks. For us, -
trunk/WebCore/rendering/RenderFieldset.h
r37252 r37464 42 42 virtual RenderObject* layoutLegend(bool relayoutChildren); 43 43 44 virtual void setStyle(const RenderStyle*);45 46 44 virtual void calcPrefWidths(); 47 45 virtual bool avoidsFloats() const { return true; } … … 50 48 51 49 RenderObject* findLegend() const; 50 51 protected: 52 virtual void styleDidChange(RenderStyle::Diff, const RenderStyle* oldStyle); 52 53 53 54 private: -
trunk/WebCore/rendering/RenderFileUploadControl.cpp
r37252 r37464 72 72 } 73 73 74 void RenderFileUploadControl::s etStyle(const RenderStyle* newStyle)75 { 76 RenderBlock::s etStyle(newStyle);74 void RenderFileUploadControl::styleDidChange(RenderStyle::Diff diff, const RenderStyle* oldStyle) 75 { 76 RenderBlock::styleDidChange(diff, oldStyle); 77 77 if (m_button) 78 m_button->renderer()->setStyle(createButtonStyle( newStyle));78 m_button->renderer()->setStyle(createButtonStyle(style())); 79 79 80 80 setReplaced(isInline()); -
trunk/WebCore/rendering/RenderFileUploadControl.h
r37252 r37464 40 40 virtual const char* renderName() const { return "RenderFileUploadControl"; } 41 41 42 virtual void setStyle(const RenderStyle*);43 42 virtual void updateFromElement(); 44 43 virtual void calcPrefWidths(); … … 53 52 String buttonValue(); 54 53 String fileTextValue(); 55 54 55 protected: 56 virtual void styleDidChange(RenderStyle::Diff, const RenderStyle* oldStyle); 57 56 58 private: 57 59 int maxFilenameWidth() const; -
trunk/WebCore/rendering/RenderInline.cpp
r37252 r37464 42 42 } 43 43 44 void RenderInline::setStyle(const RenderStyle* newStyle) 45 { 46 RenderFlow::setStyle(newStyle); 44 void RenderInline::styleDidChange(RenderStyle::Diff diff, const RenderStyle* oldStyle) 45 { 46 RenderFlow::styleDidChange(diff, oldStyle); 47 47 48 setInline(true); 48 49 setHasReflection(false); -
trunk/WebCore/rendering/RenderInline.h
r37252 r37464 51 51 RenderObject* newChild, RenderFlow* oldCont); 52 52 53 virtual void setStyle(const RenderStyle*);54 55 53 virtual void layout() { } // Do nothing for layout() 56 54 … … 75 73 76 74 protected: 75 virtual void styleDidChange(RenderStyle::Diff, const RenderStyle* oldStyle); 76 77 77 static RenderInline* cloneInline(RenderFlow* src); 78 78 -
trunk/WebCore/rendering/RenderLayer.cpp
r37462 r37464 2358 2358 } 2359 2359 2360 void RenderLayer::styleChanged(RenderStyle * oldStyle)2360 void RenderLayer::styleChanged(RenderStyle::Diff, const RenderStyle* oldStyle) 2361 2361 { 2362 2362 bool isOverflowOnly = shouldBeOverflowOnly(); -
trunk/WebCore/rendering/RenderLayer.h
r37223 r37464 163 163 void repaintIncludingDescendants(); 164 164 165 void styleChanged(RenderStyle *);165 void styleChanged(RenderStyle::Diff, const RenderStyle*); 166 166 167 167 RenderMarquee* marquee() const { return m_marquee; } -
trunk/WebCore/rendering/RenderListBox.cpp
r37252 r37464 91 91 } 92 92 93 void RenderListBox::s etStyle(const RenderStyle* style)94 { 95 RenderBlock::s etStyle(style);93 void RenderListBox::styleDidChange(RenderStyle::Diff diff, const RenderStyle* oldStyle) 94 { 95 RenderBlock::styleDidChange(diff, oldStyle); 96 96 setReplaced(isInline()); 97 97 } -
trunk/WebCore/rendering/RenderListBox.h
r37252 r37464 48 48 virtual bool isListBox() const { return true; } 49 49 50 virtual void setStyle(const RenderStyle*);51 50 virtual void updateFromElement(); 52 51 … … 95 94 virtual void setScrollTop(int); 96 95 96 protected: 97 virtual void styleDidChange(RenderStyle::Diff, const RenderStyle* oldStyle); 98 97 99 private: 98 100 // ScrollbarClient interface. -
trunk/WebCore/rendering/RenderListItem.cpp
r37252 r37464 49 49 } 50 50 51 void RenderListItem::s etStyle(const RenderStyle* newStyle)52 { 53 RenderBlock::s etStyle(newStyle);51 void RenderListItem::styleDidChange(RenderStyle::Diff diff, const RenderStyle* oldStyle) 52 { 53 RenderBlock::styleDidChange(diff, oldStyle); 54 54 55 55 if (style()->listStyleType() != LNONE || -
trunk/WebCore/rendering/RenderListItem.h
r37252 r37464 40 40 virtual void destroy(); 41 41 42 virtual void setStyle(const RenderStyle*);43 44 42 int value() const { if (!m_isValueUpToDate) updateValueNow(); return m_value; } 45 43 void updateValue(); … … 63 61 const String& markerText() const; 64 62 63 protected: 64 virtual void styleDidChange(RenderStyle::Diff, const RenderStyle* oldStyle); 65 65 66 private: 66 67 void updateMarkerLocation(); -
trunk/WebCore/rendering/RenderListMarker.cpp
r37252 r37464 486 486 } 487 487 488 void RenderListMarker::s etStyle(const RenderStyle* s)489 { 490 if (style() && ( s->listStylePosition() != style()->listStylePosition() || s->listStyleType() != style()->listStyleType()))488 void RenderListMarker::styleWillChange(RenderStyle::Diff diff, const RenderStyle* newStyle) 489 { 490 if (style() && (newStyle->listStylePosition() != style()->listStylePosition() || newStyle->listStyleType() != style()->listStyleType())) 491 491 setNeedsLayoutAndPrefWidthsRecalc(); 492 492 493 RenderBox::setStyle(s); 493 RenderBox::styleWillChange(diff, newStyle); 494 } 495 496 void RenderListMarker::styleDidChange(RenderStyle::Diff diff, const RenderStyle* oldStyle) 497 { 498 RenderBox::styleDidChange(diff, oldStyle); 494 499 495 500 if (m_image != style()->listStyleImage()) { -
trunk/WebCore/rendering/RenderListMarker.h
r37252 r37464 43 43 virtual bool isListMarker() const { return true; } 44 44 45 virtual void setStyle(const RenderStyle*);46 47 45 virtual void paint(PaintInfo&, int tx, int ty); 48 46 … … 70 68 void updateMargins(); 71 69 70 protected: 71 virtual void styleWillChange(RenderStyle::Diff, const RenderStyle* newStyle); 72 virtual void styleDidChange(RenderStyle::Diff, const RenderStyle* oldStyle); 73 72 74 private: 73 75 IntRect getRelativeMarkerRect(); -
trunk/WebCore/rendering/RenderMenuList.cpp
r37295 r37464 118 118 } 119 119 120 void RenderMenuList::setStyle(const RenderStyle* newStyle) 121 { 122 bool fontChanged = !style() || style()->font() != newStyle->font(); 123 124 // Don't allow overflow on menu lists. 125 ASSERT(newStyle->overflowX() == OVISIBLE); 126 ASSERT(newStyle->overflowY() == OVISIBLE); 127 128 RenderBlock::setStyle(newStyle); 120 void RenderMenuList::styleDidChange(RenderStyle::Diff diff, const RenderStyle* oldStyle) 121 { 122 RenderBlock::styleDidChange(diff, oldStyle); 129 123 130 124 if (m_buttonText) 131 m_buttonText->setStyle( newStyle);125 m_buttonText->setStyle(style()); 132 126 if (m_innerBlock) // RenderBlock handled updating the anonymous block's style. 133 127 adjustInnerStyle(); 128 134 129 setReplaced(isInline()); 130 131 bool fontChanged = !oldStyle || oldStyle->font() != style()->font(); 135 132 if (fontChanged) 136 133 updateOptionsWidth(); -
trunk/WebCore/rendering/RenderMenuList.h
r37295 r37464 52 52 virtual bool canHaveChildren() const { return false; } 53 53 54 virtual void setStyle(const RenderStyle*);55 54 virtual void updateFromElement(); 56 55 … … 69 68 70 69 String text() const; 71 70 71 protected: 72 virtual void styleDidChange(RenderStyle::Diff, const RenderStyle* oldStyle); 73 72 74 private: 73 75 // PopupMenuClient methods -
trunk/WebCore/rendering/RenderObject.cpp
r37252 r37464 76 76 static void* baseOfRenderObjectBeingDeleted; 77 77 #endif 78 79 bool RenderObject::s_affectsParentBlock = false; 78 80 79 81 void* RenderObject::operator new(size_t sz, RenderArena* renderArena) throw() … … 2166 2168 return; 2167 2169 2168 bool affectsParentBlock = false; 2169 RenderStyle::Diff d = RenderStyle::Equal; 2170 RenderStyle::Diff diff = RenderStyle::Equal; 2171 if (m_style) 2172 diff = m_style->diff(style); 2173 2174 // If we have no layer(), just treat a RepaintLayer hint as a normal Repaint. 2175 if (diff == RenderStyle::RepaintLayer && !hasLayer()) 2176 diff = RenderStyle::Repaint; 2177 2178 styleWillChange(diff, style); 2179 2180 RenderStyle* oldStyle = m_style; 2181 m_style = const_cast<RenderStyle*>(style); 2182 if (m_style) 2183 m_style->ref(); 2184 2185 updateFillImages(oldStyle ? oldStyle->backgroundLayers() : 0, m_style ? m_style->backgroundLayers() : 0); 2186 updateFillImages(oldStyle ? oldStyle->maskLayers() : 0, m_style ? m_style->maskLayers() : 0); 2187 2188 updateImage(oldStyle ? oldStyle->borderImage().image() : 0, m_style ? m_style->borderImage().image() : 0); 2189 updateImage(oldStyle ? oldStyle->maskBoxImage().image() : 0, m_style ? m_style->maskBoxImage().image() : 0); 2190 2191 styleDidChange(diff, oldStyle); 2192 2193 if (oldStyle) { 2194 oldStyle->deref(renderArena()); 2195 } 2196 } 2197 2198 void RenderObject::setStyleInternal(RenderStyle* style) 2199 { 2200 if (m_style == style) 2201 return; 2202 if (m_style) 2203 m_style->deref(renderArena()); 2204 m_style = style; 2205 if (m_style) 2206 m_style->ref(); 2207 } 2208 2209 void RenderObject::styleWillChange(RenderStyle::Diff diff, const RenderStyle* newStyle) 2210 { 2170 2211 if (m_style) { 2171 d = m_style->diff(style);2172 2173 2212 // If our z-index changes value or our visibility changes, 2174 2213 // we need to dirty our stacking context's z-order list. 2175 if ( style) {2214 if (newStyle) { 2176 2215 #if ENABLE(DASHBOARD_SUPPORT) 2177 if (m_style->visibility() != style->visibility() ||2178 m_style->zIndex() != style->zIndex() ||2179 m_style->hasAutoZIndex() != style->hasAutoZIndex())2216 if (m_style->visibility() != newStyle->visibility() || 2217 m_style->zIndex() != newStyle->zIndex() || 2218 m_style->hasAutoZIndex() != newStyle->hasAutoZIndex()) 2180 2219 document()->setDashboardRegionsDirty(true); 2181 2220 #endif 2182 2221 2183 if ((m_style->hasAutoZIndex() != style->hasAutoZIndex() ||2184 m_style->zIndex() != style->zIndex() ||2185 m_style->visibility() != style->visibility()) && hasLayer()) {2222 if ((m_style->hasAutoZIndex() != newStyle->hasAutoZIndex() || 2223 m_style->zIndex() != newStyle->zIndex() || 2224 m_style->visibility() != newStyle->visibility()) && hasLayer()) { 2186 2225 layer()->dirtyStackingContextZOrderLists(); 2187 if (m_style->hasAutoZIndex() != style->hasAutoZIndex() ||2188 m_style->visibility() != style->visibility())2226 if (m_style->hasAutoZIndex() != newStyle->hasAutoZIndex() || 2227 m_style->visibility() != newStyle->visibility()) 2189 2228 layer()->dirtyZOrderLists(); 2190 2229 } 2191 2230 // keep layer hierarchy visibility bits up to date if visibility changes 2192 if (m_style->visibility() != style->visibility()) {2231 if (m_style->visibility() != newStyle->visibility()) { 2193 2232 if (RenderLayer* l = enclosingLayer()) { 2194 if ( style->visibility() == VISIBLE)2233 if (newStyle->visibility() == VISIBLE) 2195 2234 l->setHasVisibleContent(true); 2196 2235 else if (l->hasVisibleContent() && (this == l->renderer() || l->renderer()->style()->visibility() != VISIBLE)) { 2197 2236 l->dirtyVisibleContentStatus(); 2198 if (d > RenderStyle::RepaintLayer)2237 if (diff > RenderStyle::RepaintLayer) 2199 2238 repaint(); 2200 2239 } … … 2203 2242 } 2204 2243 2205 // If we have no layer(), just treat a RepaintLayer hint as a normal Repaint.2206 if (d == RenderStyle::RepaintLayer && !hasLayer())2207 d = RenderStyle::Repaint;2208 2209 2244 // The background of the root element or the body element could propagate up to 2210 2245 // the canvas. Just dirty the entire canvas when our style changes substantially. 2211 if (d >= RenderStyle::Repaint && element() &&2246 if (diff >= RenderStyle::Repaint && element() && 2212 2247 (element()->hasTagName(htmlTag) || element()->hasTagName(bodyTag))) 2213 2248 view()->repaint(); … … 2215 2250 // Do a repaint with the old style first, e.g., for example if we go from 2216 2251 // having an outline to not having an outline. 2217 if (d == RenderStyle::RepaintLayer) {2252 if (diff == RenderStyle::RepaintLayer) { 2218 2253 layer()->repaintIncludingDescendants(); 2219 if (!(m_style->clip() == style->clip()))2254 if (!(m_style->clip() == newStyle->clip())) 2220 2255 layer()->clearClipRects(); 2221 } else if (d == RenderStyle::Repaint || style->outlineSize() < m_style->outlineSize())2256 } else if (diff == RenderStyle::Repaint || newStyle->outlineSize() < m_style->outlineSize()) 2222 2257 repaint(); 2223 2258 } … … 2225 2260 // When a layout hint happens, we go ahead and do a repaint of the layer, since the layer could 2226 2261 // end up being destroyed. 2227 if (d == RenderStyle::Layout && hasLayer() &&2228 (m_style->position() != style->position() ||2229 m_style->zIndex() != style->zIndex() ||2230 m_style->hasAutoZIndex() != style->hasAutoZIndex() ||2231 !(m_style->clip() == style->clip()) ||2232 m_style->hasClip() != style->hasClip() ||2233 m_style->opacity() != style->opacity()))2262 if (diff == RenderStyle::Layout && hasLayer() && 2263 (m_style->position() != newStyle->position() || 2264 m_style->zIndex() != newStyle->zIndex() || 2265 m_style->hasAutoZIndex() != newStyle->hasAutoZIndex() || 2266 !(m_style->clip() == newStyle->clip()) || 2267 m_style->hasClip() != newStyle->hasClip() || 2268 m_style->opacity() != newStyle->opacity())) 2234 2269 layer()->repaintIncludingDescendants(); 2235 2270 2236 2271 // When a layout hint happens and an object's position style changes, we have to do a layout 2237 2272 // to dirty the render tree using the old position value now. 2238 if (d == RenderStyle::Layout && m_parent && m_style->position() != style->position()) {2273 if (diff == RenderStyle::Layout && m_parent && m_style->position() != newStyle->position()) { 2239 2274 markContainingBlocksForLayout(); 2240 2275 if (m_style->position() == StaticPosition) 2241 2276 repaint(); 2242 if (isFloating() && !isPositioned() && ( style->position() == AbsolutePosition || style->position() == FixedPosition))2277 if (isFloating() && !isPositioned() && (newStyle->position() == AbsolutePosition || newStyle->position() == FixedPosition)) 2243 2278 removeFromObjectLists(); 2244 2279 if (isRenderBlock()) { 2245 if ( style->position() == StaticPosition)2280 if (newStyle->position() == StaticPosition) 2246 2281 // Clear our positioned objects list. Our absolutely positioned descendants will be 2247 2282 // inserted into our containing block's positioned objects list during layout. … … 2263 2298 } 2264 2299 2265 if (isFloating() && (m_style->floating() != style->floating()))2300 if (isFloating() && (m_style->floating() != newStyle->floating())) 2266 2301 // For changes in float styles, we need to conceivably remove ourselves 2267 2302 // from the floating objects list. 2268 2303 removeFromObjectLists(); 2269 else if (isPositioned() && ( style->position() != AbsolutePosition && style->position() != FixedPosition))2304 else if (isPositioned() && (newStyle->position() != AbsolutePosition && newStyle->position() != FixedPosition)) 2270 2305 // For changes in positioning styles, we need to conceivably remove ourselves 2271 2306 // from the positioned objects list. 2272 2307 removeFromObjectLists(); 2273 2308 2274 affectsParentBlock = m_style &&isFloatingOrPositioned() &&2275 (! style->isFloating() && style->position() != AbsolutePosition && style->position() != FixedPosition)2309 s_affectsParentBlock = isFloatingOrPositioned() && 2310 (!newStyle->isFloating() && newStyle->position() != AbsolutePosition && newStyle->position() != FixedPosition) 2276 2311 && parent() && (parent()->isBlockFlow() || parent()->isInlineFlow()); 2277 2312 2278 2313 // reset style flags 2279 if (d == RenderStyle::Layout || d== RenderStyle::LayoutPositionedMovementOnly) {2314 if (diff == RenderStyle::Layout || diff == RenderStyle::LayoutPositionedMovementOnly) { 2280 2315 m_floating = false; 2281 2316 m_positioned = false; … … 2286 2321 m_hasTransform = false; 2287 2322 m_hasReflection = false; 2288 } 2323 } else 2324 s_affectsParentBlock = false; 2289 2325 2290 2326 if (view()->frameView()) { 2291 2327 // FIXME: A better solution would be to only invalidate the fixed regions when scrolling. It's overkill to 2292 2328 // prevent the entire view from blitting on a scroll. 2293 bool newStyleSlowScroll = style && (style->position() == FixedPosition || style->hasFixedBackgroundImage());2329 bool newStyleSlowScroll = newStyle && (newStyle->position() == FixedPosition || newStyle->hasFixedBackgroundImage()); 2294 2330 bool oldStyleSlowScroll = m_style && (m_style->position() == FixedPosition || m_style->hasFixedBackgroundImage()); 2295 2331 if (oldStyleSlowScroll != newStyleSlowScroll) { … … 2300 2336 } 2301 2337 } 2302 2303 RenderStyle* oldStyle = m_style; 2304 m_style = const_cast<RenderStyle*>(style); 2305 if (m_style) 2306 m_style->ref(); 2307 2308 updateFillImages(oldStyle ? oldStyle->backgroundLayers() : 0, m_style ? m_style->backgroundLayers() : 0); 2309 updateFillImages(oldStyle ? oldStyle->maskLayers() : 0, m_style ? m_style->maskLayers() : 0); 2310 2311 updateImage(oldStyle ? oldStyle->borderImage().image() : 0, m_style ? m_style->borderImage().image() : 0); 2312 updateImage(oldStyle ? oldStyle->maskBoxImage().image() : 0, m_style ? m_style->maskBoxImage().image() : 0); 2313 2314 if (oldStyle) { 2315 oldStyle->deref(renderArena()); 2316 oldStyle = 0; 2317 } 2318 2338 } 2339 2340 void RenderObject::styleDidChange(RenderStyle::Diff diff, const RenderStyle* oldStyle) 2341 { 2319 2342 setHasBoxDecorations(m_style->hasBorder() || m_style->hasBackground() || m_style->hasAppearance() || m_style->boxShadow()); 2320 2343 2321 if ( affectsParentBlock)2344 if (s_affectsParentBlock) 2322 2345 handleDynamicFloatPositionChange(); 2323 2346 … … 2326 2349 // We do have to schedule layouts, though, since a style change can force us to 2327 2350 // need to relayout. 2328 if (d == RenderStyle::Layout && m_parent)2351 if (diff == RenderStyle::Layout && m_parent) 2329 2352 setNeedsLayoutAndPrefWidthsRecalc(); 2330 else if (d == RenderStyle::LayoutPositionedMovementOnly && m_parent && !isText())2353 else if (diff == RenderStyle::LayoutPositionedMovementOnly && m_parent && !isText()) 2331 2354 setNeedsPositionedMovementLayout(); 2332 else if (m_parent && !isText() && (d == RenderStyle::RepaintLayer || d== RenderStyle::Repaint))2355 else if (m_parent && !isText() && (diff == RenderStyle::RepaintLayer || diff == RenderStyle::Repaint)) 2333 2356 // Do a repaint with the new style now, e.g., for example if we go from 2334 2357 // not having an outline to having an outline. 2335 2358 repaint(); 2336 }2337 2338 void RenderObject::setStyleInternal(RenderStyle* style)2339 {2340 if (m_style == style)2341 return;2342 if (m_style)2343 m_style->deref(renderArena());2344 m_style = style;2345 if (m_style)2346 m_style->ref();2347 2359 } 2348 2360 -
trunk/WebCore/rendering/RenderObject.h
r37252 r37464 528 528 #endif 529 529 530 // Used to signal a specific subrect within an object that must be repainted after531 // layout is complete.532 struct RepaintInfo {533 RepaintInfo(RenderObject* object = 0, const IntRect& repaintRect = IntRect())534 : m_object(object)535 , m_repaintRect(repaintRect)536 {537 }538 539 RenderObject* m_object;540 IntRect m_repaintRect;541 };542 543 530 bool hitTest(const HitTestRequest&, HitTestResult&, const IntPoint&, int tx, int ty, HitTestFilter = HitTestAll); 544 531 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, int x, int y, int tx, int ty, HitTestAction); … … 908 895 909 896 protected: 897 // Overrides should call the superclass at the end 898 virtual void styleWillChange(RenderStyle::Diff, const RenderStyle* newStyle); 899 // Overrides should call the superclass at the start 900 virtual void styleDidChange(RenderStyle::Diff, const RenderStyle* oldStyle); 901 910 902 virtual void printBoxDecorations(GraphicsContext*, int /*x*/, int /*y*/, int /*w*/, int /*h*/, int /*tx*/, int /*ty*/) { } 911 903 … … 960 952 bool m_hasCounterNodeMap : 1; 961 953 bool m_everHadLayout : 1; 954 955 private: 956 // Store state between styleWillChange and styleDidChange 957 static bool s_affectsParentBlock; 962 958 }; 963 959 -
trunk/WebCore/rendering/RenderReplaced.cpp
r37252 r37464 62 62 } 63 63 64 void RenderReplaced::setStyle(const RenderStyle* newStyle) 65 { 66 bool hadStyle = style(); 67 float oldZoom = hadStyle ? style()->effectiveZoom() : RenderStyle::initialZoom(); 68 RenderBox::setStyle(newStyle); 69 if (hadStyle && newStyle && newStyle->effectiveZoom() != oldZoom) 64 void RenderReplaced::styleDidChange(RenderStyle::Diff diff, const RenderStyle* oldStyle) 65 { 66 RenderBox::styleDidChange(diff, oldStyle); 67 68 bool hadStyle = (oldStyle != 0); 69 float oldZoom = hadStyle ? oldStyle->effectiveZoom() : RenderStyle::initialZoom(); 70 if (hadStyle && style() && style()->effectiveZoom() != oldZoom) 70 71 intrinsicSizeChanged(); 71 72 } -
trunk/WebCore/rendering/RenderReplaced.h
r37252 r37464 43 43 virtual int minimumReplacedHeight() const { return 0; } 44 44 45 virtual void setStyle(const RenderStyle*);46 47 45 virtual void paint(PaintInfo&, int tx, int ty); 48 46 virtual void paintReplaced(PaintInfo&, int tx, int ty) { } … … 67 65 68 66 protected: 67 virtual void styleDidChange(RenderStyle::Diff, const RenderStyle* oldStyle); 68 69 69 void setIntrinsicSize(const IntSize&); 70 70 virtual void intrinsicSizeChanged(); -
trunk/WebCore/rendering/RenderSVGGradientStop.cpp
r37252 r37464 43 43 } 44 44 45 void RenderSVGGradientStop::s etStyle(const RenderStyle* style)45 void RenderSVGGradientStop::styleDidChange(RenderStyle::Diff diff, const RenderStyle* oldStyle) 46 46 { 47 RenderObject::s etStyle(style);47 RenderObject::styleDidChange(diff, oldStyle); 48 48 49 49 // <stop> elements should only be allowed to make renderers under gradient elements -
trunk/WebCore/rendering/RenderSVGGradientStop.h
r37252 r37464 41 41 42 42 virtual void layout(); 43 virtual void setStyle(const RenderStyle*); 44 43 44 protected: 45 virtual void styleDidChange(RenderStyle::Diff, const RenderStyle* oldStyle); 46 45 47 private: 46 48 SVGGradientElement* gradientElement() const; -
trunk/WebCore/rendering/RenderScrollbarPart.cpp
r37462 r37464 116 116 } 117 117 118 void RenderScrollbarPart::s etStyle(const RenderStyle* s)118 void RenderScrollbarPart::styleDidChange(RenderStyle::Diff diff, const RenderStyle* oldStyle) 119 119 { 120 RenderBlock::s etStyle(s);120 RenderBlock::styleDidChange(diff, oldStyle); 121 121 setInline(false); 122 122 setPositioned(false); -
trunk/WebCore/rendering/RenderScrollbarPart.h
r37462 r37464 46 46 virtual void calcPrefWidths(); 47 47 48 virtual void setStyle(const RenderStyle*); 48 protected: 49 virtual void styleDidChange(RenderStyle::Diff, const RenderStyle* oldStyle); 49 50 50 51 private: -
trunk/WebCore/rendering/RenderSlider.cpp
r37252 r37464 165 165 } 166 166 167 void RenderSlider::s etStyle(const RenderStyle* newStyle)168 { 169 RenderBlock::s etStyle(newStyle);167 void RenderSlider::styleDidChange(RenderStyle::Diff diff, const RenderStyle* oldStyle) 168 { 169 RenderBlock::styleDidChange(diff, oldStyle); 170 170 171 171 if (m_thumb) { 172 RenderStyle* thumbStyle = createThumbStyle( newStyle, m_thumb->renderer()->style());172 RenderStyle* thumbStyle = createThumbStyle(style(), m_thumb->renderer()->style()); 173 173 m_thumb->renderer()->setStyle(thumbStyle); 174 174 } -
trunk/WebCore/rendering/RenderSlider.h
r37252 r37464 42 42 virtual int baselinePosition( bool, bool ) const; 43 43 virtual void calcPrefWidths(); 44 virtual void setStyle(const RenderStyle*);45 44 virtual void layout(); 46 45 virtual void updateFromElement(); … … 60 59 bool inDragMode() const; 61 60 61 protected: 62 virtual void styleDidChange(RenderStyle::Diff, const RenderStyle* oldStyle); 63 62 64 private: 63 65 RenderStyle* createThumbStyle(const RenderStyle* parentStyle, const RenderStyle* oldStyle = 0); -
trunk/WebCore/rendering/RenderTable.cpp
r37252 r37464 71 71 } 72 72 73 void RenderTable::setStyle(const RenderStyle* newStyle) 74 { 75 ETableLayout oldTableLayout = style() ? style()->tableLayout() : TAUTO; 76 RenderBlock::setStyle(newStyle); 73 void RenderTable::styleDidChange(RenderStyle::Diff diff, const RenderStyle* oldStyle) 74 { 75 RenderBlock::styleDidChange(diff, oldStyle); 76 77 ETableLayout oldTableLayout = oldStyle ? oldStyle->tableLayout() : TAUTO; 77 78 78 79 // In the collapsed border model, there is no cell spacing. -
trunk/WebCore/rendering/RenderTable.h
r37252 r37464 67 67 virtual bool isTable() const { return true; } 68 68 69 virtual void setStyle(const RenderStyle*);70 71 69 virtual bool avoidsFloats() const { return true; } 72 70 … … 194 192 } 195 193 194 protected: 195 virtual void styleDidChange(RenderStyle::Diff, const RenderStyle* oldStyle); 196 196 197 private: 197 198 void recalcSections() const; -
trunk/WebCore/rendering/RenderTableCell.cpp
r37252 r37464 221 221 } 222 222 223 void RenderTableCell::s etStyle(const RenderStyle* newStyle)223 void RenderTableCell::styleWillChange(RenderStyle::Diff diff, const RenderStyle* newStyle) 224 224 { 225 225 if (parent() && section() && style() && style()->height() != newStyle->height()) … … 228 228 ASSERT(newStyle->display() == TABLE_CELL); 229 229 230 RenderBlock::setStyle(newStyle); 230 RenderBlock::styleWillChange(diff, newStyle); 231 } 232 233 void RenderTableCell::styleDidChange(RenderStyle::Diff diff, const RenderStyle* oldStyle) 234 { 235 RenderBlock::styleDidChange(diff, oldStyle); 231 236 setHasBoxDecorations(true); 232 237 } -
trunk/WebCore/rendering/RenderTableCell.h
r37252 r37464 65 65 virtual void calcWidth(); 66 66 virtual void setWidth(int); 67 virtual void setStyle(const RenderStyle*);68 67 69 68 virtual bool expandsToEncloseOverhangingFloats() const { return true; } … … 113 112 virtual int borderBottomExtra() const { return m_bottomExtra; } 114 113 114 protected: 115 virtual void styleWillChange(RenderStyle::Diff, const RenderStyle* newStyle); 116 virtual void styleDidChange(RenderStyle::Diff, const RenderStyle* oldStyle); 117 115 118 private: 116 119 int m_row; -
trunk/WebCore/rendering/RenderTableRow.cpp
r37252 r37464 55 55 } 56 56 57 void RenderTableRow::s etStyle(const RenderStyle* newStyle)57 void RenderTableRow::styleWillChange(RenderStyle::Diff diff, const RenderStyle* newStyle) 58 58 { 59 59 if (section() && style() && style()->height() != newStyle->height()) … … 62 62 ASSERT(newStyle->display() == TABLE_ROW); 63 63 64 RenderContainer::s etStyle(newStyle);64 RenderContainer::styleWillChange(diff, newStyle); 65 65 } 66 66 -
trunk/WebCore/rendering/RenderTableRow.h
r37252 r37464 45 45 RenderTable* table() const { return static_cast<RenderTable*>(parent()->parent()); } 46 46 47 virtual void setStyle(const RenderStyle*);48 47 virtual void addChild(RenderObject* child, RenderObject* beforeChild = 0); 49 48 virtual int lineHeight(bool firstLine, bool isRootLineBox = false) const { return 0; } … … 58 57 virtual void paint(PaintInfo&, int tx, int ty); 59 58 virtual void imageChanged(WrappedImagePtr); 59 60 protected: 61 virtual void styleWillChange(RenderStyle::Diff, const RenderStyle* newStyle); 62 60 63 }; 61 64 -
trunk/WebCore/rendering/RenderText.cpp
r37252 r37464 92 92 } 93 93 94 void RenderText::setStyle(const RenderStyle* newStyle) 95 { 96 RenderStyle* oldStyle = style(); 97 if (oldStyle == newStyle) 98 return; 94 void RenderText::styleDidChange(RenderStyle::Diff diff, const RenderStyle* oldStyle) 95 { 96 RenderObject::styleDidChange(diff, oldStyle); 99 97 100 98 ETextTransform oldTransform = oldStyle ? oldStyle->textTransform() : TTNONE; 101 99 ETextSecurity oldSecurity = oldStyle ? oldStyle->textSecurity() : TSNONE; 102 100 103 RenderObject::setStyle(newStyle); 104 105 if (oldTransform != newStyle->textTransform() || oldSecurity != newStyle->textSecurity() 101 if (oldTransform != style()->textTransform() || oldSecurity != style()->textSecurity() 106 102 #if ENABLE(SVG) 107 103 || isSVGText() /* All SVG text has to be transformed */ -
trunk/WebCore/rendering/RenderText.h
r37252 r37464 44 44 45 45 virtual PassRefPtr<StringImpl> originalText() const; 46 47 virtual void setStyle(const RenderStyle*);48 46 49 47 void extractTextBox(InlineTextBox*); … … 132 130 133 131 protected: 132 virtual void styleDidChange(RenderStyle::Diff, const RenderStyle* oldStyle); 133 134 134 virtual void setTextInternal(PassRefPtr<StringImpl>); 135 135 virtual void calcPrefWidths(int leadWidth); -
trunk/WebCore/rendering/RenderTextControl.cpp
r37295 r37464 110 110 } 111 111 112 void RenderTextControl::s etStyle(const RenderStyle* style)113 { 114 RenderBlock::s etStyle(style);112 void RenderTextControl::styleDidChange(RenderStyle::Diff diff, const RenderStyle* oldStyle) 113 { 114 RenderBlock::styleDidChange(diff, oldStyle); 115 115 if (m_innerBlock) { 116 116 // We may have set the width and the height in the old style in layout(). Reset them now to avoid … … 118 118 m_innerBlock->renderer()->style()->setHeight(Length()); 119 119 m_innerBlock->renderer()->style()->setWidth(Length()); 120 m_innerBlock->renderer()->setStyle(createInnerBlockStyle(style ));120 m_innerBlock->renderer()->setStyle(createInnerBlockStyle(style())); 121 121 } 122 122 123 123 if (m_innerText) { 124 124 RenderBlock* textBlockRenderer = static_cast<RenderBlock*>(m_innerText->renderer()); 125 RenderStyle* textBlockStyle = createInnerTextStyle(style );125 RenderStyle* textBlockStyle = createInnerTextStyle(style()); 126 126 // We may have set the width and the height in the old style in layout(). Reset them now to avoid 127 127 // getting a spurious layout hint. … … 135 135 } 136 136 if (m_resultsButton && m_resultsButton->renderer()) 137 m_resultsButton->renderer()->setStyle(createResultsButtonStyle(style ));137 m_resultsButton->renderer()->setStyle(createResultsButtonStyle(style())); 138 138 139 139 if (m_cancelButton && m_cancelButton->renderer()) 140 m_cancelButton->renderer()->setStyle(createCancelButtonStyle(style ));140 m_cancelButton->renderer()->setStyle(createCancelButtonStyle(style())); 141 141 142 142 setHasOverflowClip(false); -
trunk/WebCore/rendering/RenderTextControl.h
r37295 r37464 48 48 virtual void calcPrefWidths(); 49 49 virtual void removeLeftoverAnonymousBlock(RenderBlock*) { } 50 virtual void setStyle(const RenderStyle*);51 50 virtual void updateFromElement(); 52 51 virtual bool canHaveChildren() const { return false; } … … 108 107 virtual void capsLockStateMayHaveChanged(); 109 108 109 protected: 110 virtual void styleDidChange(RenderStyle::Diff, const RenderStyle* oldStyle); 111 110 112 private: 111 113 // PopupMenuClient methods -
trunk/WebCore/rendering/RenderWidget.cpp
r37252 r37464 157 157 } 158 158 159 void RenderWidget::s etStyle(const RenderStyle* newStyle)160 { 161 RenderReplaced::s etStyle(newStyle);159 void RenderWidget::styleDidChange(RenderStyle::Diff diff, const RenderStyle* oldStyle) 160 { 161 RenderReplaced::styleDidChange(diff, oldStyle); 162 162 if (m_widget) { 163 163 if (style()->visibility() != VISIBLE) -
trunk/WebCore/rendering/RenderWidget.h
r37252 r37464 38 38 virtual bool isWidget() const { return true; } 39 39 40 virtual void setStyle(const RenderStyle*);41 42 40 virtual void paint(PaintInfo&, int tx, int ty); 43 41 … … 59 57 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, int x, int y, int tx, int ty, HitTestAction); 60 58 59 protected: 60 virtual void styleDidChange(RenderStyle::Diff, const RenderStyle* oldStyle); 61 61 62 private: 62 63 void setWidgetGeometry(const IntRect&);
Note: See TracChangeset
for help on using the changeset viewer.