Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2007 David Smith (catfish.man@gmail.com) | 4 * (C) 2007 David Smith (catfish.man@gmail.com) |
| 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. | 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. |
| 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
| 7 * | 7 * |
| 8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 274 setReplaced(newStyle.isDisplayInlineType()); | 274 setReplaced(newStyle.isDisplayInlineType()); |
| 275 | 275 |
| 276 if (oldStyle && parent()) { | 276 if (oldStyle && parent()) { |
| 277 bool oldStyleIsContainer = oldStyle->position() != StaticPosition || old Style->hasTransformRelatedProperty(); | 277 bool oldStyleIsContainer = oldStyle->position() != StaticPosition || old Style->hasTransformRelatedProperty(); |
| 278 bool newStyleIsContainer = newStyle.position() != StaticPosition || newS tyle.hasTransformRelatedProperty(); | 278 bool newStyleIsContainer = newStyle.position() != StaticPosition || newS tyle.hasTransformRelatedProperty(); |
| 279 | 279 |
| 280 if (oldStyleIsContainer && !newStyleIsContainer) { | 280 if (oldStyleIsContainer && !newStyleIsContainer) { |
| 281 // Clear our positioned objects list. Our absolutely positioned desc endants will be | 281 // Clear our positioned objects list. Our absolutely positioned desc endants will be |
| 282 // inserted into our containing block's positioned objects list duri ng layout. | 282 // inserted into our containing block's positioned objects list duri ng layout. |
| 283 removePositionedObjects(0, NewContainingBlock); | 283 removePositionedObjects(0, NewContainingBlock); |
| 284 } else if (!oldStyleIsContainer && newStyleIsContainer) { | 284 } else if ((!oldStyleIsContainer || oldStyle->position() != newStyle.pos ition()) && newStyleIsContainer) { |
| 285 // Remove our absolutely positioned descendants from their current c ontaining block. | 285 // Remove our absolutely positioned descendants from their current c ontaining block. |
|
mstensho (USE GERRIT)
2015/06/15 10:02:55
This comment is now inaccurate. We're removing pos
| |
| 286 // They will be inserted into our positioned objects list during lay out. | 286 // They will be inserted into our positioned objects list during lay out. |
| 287 LayoutObject* cb = parent(); | 287 if (LayoutBlock* cb = containingBlock(&newStyle)) |
|
mstensho (USE GERRIT)
2015/06/15 10:02:54
Why not do this in styleDidChange() instead of sty
| |
| 288 while (cb && (cb->style()->position() == StaticPosition || (cb->isIn line() && !cb->isReplaced())) && !cb->isLayoutView()) { | 288 cb->removePositionedObjects(this, NewContainingBlock); |
| 289 if (cb->style()->position() == RelativePosition && cb->isInline( ) && !cb->isReplaced()) { | |
| 290 cb = cb->containingBlock(); | |
| 291 break; | |
| 292 } | |
| 293 cb = cb->parent(); | |
| 294 } | |
| 295 | |
| 296 if (cb->isLayoutBlock()) | |
| 297 toLayoutBlock(cb)->removePositionedObjects(this, NewContainingBl ock); | |
| 298 } | 289 } |
| 299 } | 290 } |
| 300 | 291 |
| 301 LayoutBox::styleWillChange(diff, newStyle); | 292 LayoutBox::styleWillChange(diff, newStyle); |
| 302 } | 293 } |
| 303 | 294 |
| 304 static bool borderOrPaddingLogicalWidthChanged(const ComputedStyle& oldStyle, co nst ComputedStyle& newStyle) | 295 static bool borderOrPaddingLogicalWidthChanged(const ComputedStyle& oldStyle, co nst ComputedStyle& newStyle) |
| 305 { | 296 { |
| 306 if (newStyle.isHorizontalWritingMode()) { | 297 if (newStyle.isHorizontalWritingMode()) { |
| 307 return oldStyle.borderLeftWidth() != newStyle.borderLeftWidth() | 298 return oldStyle.borderLeftWidth() != newStyle.borderLeftWidth() |
| (...skipping 2599 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2907 void LayoutBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Layout Object* obj) const | 2898 void LayoutBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Layout Object* obj) const |
| 2908 { | 2899 { |
| 2909 showLayoutObject(); | 2900 showLayoutObject(); |
| 2910 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot Box()) | 2901 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot Box()) |
| 2911 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa bel2, obj, 1); | 2902 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa bel2, obj, 1); |
| 2912 } | 2903 } |
| 2913 | 2904 |
| 2914 #endif | 2905 #endif |
| 2915 | 2906 |
| 2916 } // namespace blink | 2907 } // namespace blink |
| OLD | NEW |