Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 784 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 795 ASSERT(renderer); | 795 ASSERT(renderer); |
| 796 RenderStyle* currentStyle = renderer->style(); | 796 RenderStyle* currentStyle = renderer->style(); |
| 797 if (currentStyle->textAutosizingMultiplier() == multiplier) | 797 if (currentStyle->textAutosizingMultiplier() == multiplier) |
| 798 return; | 798 return; |
| 799 | 799 |
| 800 // We need to clone the render style to avoid breaking style sharing. | 800 // We need to clone the render style to avoid breaking style sharing. |
| 801 RefPtr<RenderStyle> style = RenderStyle::clone(currentStyle); | 801 RefPtr<RenderStyle> style = RenderStyle::clone(currentStyle); |
| 802 style->setTextAutosizingMultiplier(multiplier); | 802 style->setTextAutosizingMultiplier(multiplier); |
| 803 style->setUnique(); | 803 style->setUnique(); |
| 804 renderer->setStyleInternal(style.release()); | 804 renderer->setStyleInternal(style.release()); |
| 805 | |
| 806 // Notify inline renderers that their width may have changed. | |
| 807 if (renderer->parent() && renderer->parent()->isRenderInline()) | |
| 808 renderer->setPreferredLogicalWidthsDirty(MarkOnlyThis); | |
|
skobes
2014/03/31 17:19:58
Do you know why this works? I would have guessed
pdr.
2014/04/01 06:06:43
A good question. In looking into this I found our
| |
| 805 } | 809 } |
| 806 | 810 |
| 807 bool FastTextAutosizer::isWiderOrNarrowerDescendant(Cluster* cluster) | 811 bool FastTextAutosizer::isWiderOrNarrowerDescendant(Cluster* cluster) |
| 808 { | 812 { |
| 809 if (!cluster->m_parent || !mightBeWiderOrNarrowerDescendant(cluster->m_root) ) | 813 if (!cluster->m_parent || !mightBeWiderOrNarrowerDescendant(cluster->m_root) ) |
| 810 return true; | 814 return true; |
| 811 | 815 |
| 812 const RenderBlock* parentDeepestBlockContainingAllText = deepestBlockContain ingAllText(cluster->m_parent); | 816 const RenderBlock* parentDeepestBlockContainingAllText = deepestBlockContain ingAllText(cluster->m_parent); |
| 813 ASSERT(m_blocksThatHaveBegunLayout.contains(cluster->m_root)); | 817 ASSERT(m_blocksThatHaveBegunLayout.contains(cluster->m_root)); |
| 814 ASSERT(m_blocksThatHaveBegunLayout.contains(parentDeepestBlockContainingAllT ext)); | 818 ASSERT(m_blocksThatHaveBegunLayout.contains(parentDeepestBlockContainingAllT ext)); |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 926 m_textAutosizer = 0; | 930 m_textAutosizer = 0; |
| 927 } | 931 } |
| 928 | 932 |
| 929 FastTextAutosizer::LayoutScope::~LayoutScope() | 933 FastTextAutosizer::LayoutScope::~LayoutScope() |
| 930 { | 934 { |
| 931 if (m_textAutosizer) | 935 if (m_textAutosizer) |
| 932 m_textAutosizer->endLayout(m_block); | 936 m_textAutosizer->endLayout(m_block); |
| 933 } | 937 } |
| 934 | 938 |
| 935 } // namespace WebCore | 939 } // namespace WebCore |
| OLD | NEW |