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

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: Created 5 years, 9 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 LayoutStyle* oldStyl e) 186 void LayoutText::styleDidChange(StyleDifference diff, const LayoutStyle* oldStyl e)
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 LayoutStyle& newStyle = styleRef(); 197 const LayoutStyle& 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 1220 matching lines...) Expand 10 before | Expand all | Expand 10 after
1424 ASSERT(text); 1424 ASSERT(text);
1425 1425
1426 if (!force && equal(m_text.impl(), text.get())) 1426 if (!force && equal(m_text.impl(), text.get()))
1427 return; 1427 return;
1428 1428
1429 setTextInternal(text); 1429 setTextInternal(text);
1430 // If preferredLogicalWidthsDirty() of an orphan child is true, LayoutObject ChildList:: 1430 // If preferredLogicalWidthsDirty() of an orphan child is true, LayoutObject ChildList::
1431 // insertChildNode() fails to set true to owner. To avoid that, we call 1431 // insertChildNode() fails to set true to owner. To avoid that, we call
1432 // setNeedsLayoutAndPrefWidthsRecalc() only if this LayoutText has parent. 1432 // setNeedsLayoutAndPrefWidthsRecalc() only if this LayoutText has parent.
1433 if (parent()) 1433 if (parent())
1434 setNeedsLayoutAndPrefWidthsRecalc(); 1434 setNeedsLayoutAndPrefWidthsRecalc(LayoutInvalidationReason::TextChanged) ;
1435 m_knownToHaveNoOverflowAndNoFallbackFonts = false; 1435 m_knownToHaveNoOverflowAndNoFallbackFonts = false;
1436 1436
1437 if (AXObjectCache* cache = document().existingAXObjectCache()) 1437 if (AXObjectCache* cache = document().existingAXObjectCache())
1438 cache->textChanged(this); 1438 cache->textChanged(this);
1439 } 1439 }
1440 1440
1441 void LayoutText::dirtyOrDeleteLineBoxesIfNeeded(bool fullLayout) 1441 void LayoutText::dirtyOrDeleteLineBoxesIfNeeded(bool fullLayout)
1442 { 1442 {
1443 if (fullLayout) 1443 if (fullLayout)
1444 deleteTextBoxes(); 1444 deleteTextBoxes();
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
1893 } 1893 }
1894 1894
1895 void LayoutText::invalidateDisplayItemClients(const LayoutBoxModelObject& paintI nvalidationContainer) const 1895 void LayoutText::invalidateDisplayItemClients(const LayoutBoxModelObject& paintI nvalidationContainer) const
1896 { 1896 {
1897 LayoutObject::invalidateDisplayItemClients(paintInvalidationContainer); 1897 LayoutObject::invalidateDisplayItemClients(paintInvalidationContainer);
1898 for (InlineTextBox* box = firstTextBox(); box; box = box->nextTextBox()) 1898 for (InlineTextBox* box = firstTextBox(); box; box = box->nextTextBox())
1899 paintInvalidationContainer.invalidateDisplayItemClientOnBacking(DisplayI temClientData(*box, DisplayItemClientData::NoDebugName)); 1899 paintInvalidationContainer.invalidateDisplayItemClientOnBacking(DisplayI temClientData(*box, DisplayItemClientData::NoDebugName));
1900 } 1900 }
1901 1901
1902 } // namespace blink 1902 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698