Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(169)

Side by Side Diff: Source/core/layout/LayoutText.cpp

Issue 1025213002: Begin tracking why layout is invalidated (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * (C) 1999 Lars Knoll (knoll@kde.org) 2 * (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Dirk Mueller (mueller@kde.org) 3 * (C) 2000 Dirk Mueller (mueller@kde.org)
4 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. 4 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved.
5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) 5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net)
6 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com) 6 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com)
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 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 return false; 183 return false;
184 } 184 }
185 185
186 void LayoutText::styleDidChange(StyleDifference diff, const ComputedStyle* oldSt yle) 186 void LayoutText::styleDidChange(StyleDifference diff, const ComputedStyle* oldSt yle)
187 { 187 {
188 // There is no need to ever schedule paint invalidations from a style change of a text run, since 188 // There is no need to ever schedule paint invalidations from a style change of a text run, since
189 // we already did this for the parent of the text run. 189 // we already did this for the parent of the text run.
190 // We do have to schedule layouts, though, since a style change can force us to 190 // We do have to schedule layouts, though, since a style change can force us to
191 // need to relayout. 191 // need to relayout.
192 if (diff.needsFullLayout()) { 192 if (diff.needsFullLayout()) {
193 setNeedsLayoutAndPrefWidthsRecalc(); 193 setNeedsLayoutAndPrefWidthsRecalc(LayoutInvalidationReason::StyleChange) ;
194 m_knownToHaveNoOverflowAndNoFallbackFonts = false; 194 m_knownToHaveNoOverflowAndNoFallbackFonts = false;
195 } 195 }
196 196
197 const ComputedStyle& newStyle = styleRef(); 197 const ComputedStyle& newStyle = styleRef();
198 ETextTransform oldTransform = oldStyle ? oldStyle->textTransform() : TTNONE; 198 ETextTransform oldTransform = oldStyle ? oldStyle->textTransform() : TTNONE;
199 ETextSecurity oldSecurity = oldStyle ? oldStyle->textSecurity() : TSNONE; 199 ETextSecurity oldSecurity = oldStyle ? oldStyle->textSecurity() : TSNONE;
200 if (oldTransform != newStyle.textTransform() || oldSecurity != newStyle.text Security()) 200 if (oldTransform != newStyle.textTransform() || oldSecurity != newStyle.text Security())
201 transformText(); 201 transformText();
202 202
203 // This is an optimization that kicks off font load before layout. 203 // This is an optimization that kicks off font load before layout.
(...skipping 1225 matching lines...) Expand 10 before | Expand all | Expand 10 after
1429 ASSERT(text); 1429 ASSERT(text);
1430 1430
1431 if (!force && equal(m_text.impl(), text.get())) 1431 if (!force && equal(m_text.impl(), text.get()))
1432 return; 1432 return;
1433 1433
1434 setTextInternal(text); 1434 setTextInternal(text);
1435 // If preferredLogicalWidthsDirty() of an orphan child is true, LayoutObject ChildList:: 1435 // If preferredLogicalWidthsDirty() of an orphan child is true, LayoutObject ChildList::
1436 // insertChildNode() fails to set true to owner. To avoid that, we call 1436 // insertChildNode() fails to set true to owner. To avoid that, we call
1437 // setNeedsLayoutAndPrefWidthsRecalc() only if this LayoutText has parent. 1437 // setNeedsLayoutAndPrefWidthsRecalc() only if this LayoutText has parent.
1438 if (parent()) 1438 if (parent())
1439 setNeedsLayoutAndPrefWidthsRecalc(); 1439 setNeedsLayoutAndPrefWidthsRecalc(LayoutInvalidationReason::TextChanged) ;
1440 m_knownToHaveNoOverflowAndNoFallbackFonts = false; 1440 m_knownToHaveNoOverflowAndNoFallbackFonts = false;
1441 1441
1442 if (AXObjectCache* cache = document().existingAXObjectCache()) 1442 if (AXObjectCache* cache = document().existingAXObjectCache())
1443 cache->textChanged(this); 1443 cache->textChanged(this);
1444 } 1444 }
1445 1445
1446 void LayoutText::dirtyOrDeleteLineBoxesIfNeeded(bool fullLayout) 1446 void LayoutText::dirtyOrDeleteLineBoxesIfNeeded(bool fullLayout)
1447 { 1447 {
1448 if (fullLayout) 1448 if (fullLayout)
1449 deleteTextBoxes(); 1449 deleteTextBoxes();
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
1898 } 1898 }
1899 1899
1900 void LayoutText::invalidateDisplayItemClients(const LayoutBoxModelObject& paintI nvalidationContainer) const 1900 void LayoutText::invalidateDisplayItemClients(const LayoutBoxModelObject& paintI nvalidationContainer) const
1901 { 1901 {
1902 LayoutObject::invalidateDisplayItemClients(paintInvalidationContainer); 1902 LayoutObject::invalidateDisplayItemClients(paintInvalidationContainer);
1903 for (InlineTextBox* box = firstTextBox(); box; box = box->nextTextBox()) 1903 for (InlineTextBox* box = firstTextBox(); box; box = box->nextTextBox())
1904 paintInvalidationContainer.invalidateDisplayItemClientOnBacking(*box); 1904 paintInvalidationContainer.invalidateDisplayItemClientOnBacking(*box);
1905 } 1905 }
1906 1906
1907 } // namespace blink 1907 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/layout/LayoutTableSection.cpp ('k') | Source/core/layout/LayoutTextControlSingleLine.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698