| Index: Source/core/page/Page.cpp
|
| diff --git a/Source/core/page/Page.cpp b/Source/core/page/Page.cpp
|
| index 3df282a738958a24836310ad978da761d1da342a..21e304f3ca91c79c1f7eca063d8a8b3fd426eb72 100644
|
| --- a/Source/core/page/Page.cpp
|
| +++ b/Source/core/page/Page.cpp
|
| @@ -262,6 +262,14 @@ void Page::setNeedsRecalcStyleInAllFrames()
|
| frame->document()->styleResolverChanged(RecalcStyleDeferred);
|
| }
|
|
|
| +void Page::setNeedsLayoutInAllFrames()
|
| +{
|
| + for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()) {
|
| + if (FrameView* view = frame->view())
|
| + view->setNeedsLayout();
|
| + }
|
| +}
|
| +
|
| void Page::refreshPlugins(bool reload)
|
| {
|
| if (allPages().isEmpty())
|
| @@ -497,11 +505,18 @@ void Page::settingsChanged(SettingsDelegate::ChangeType changeType)
|
| if (textAutosizer)
|
| textAutosizer->recalculateMultipliers();
|
| }
|
| - setNeedsRecalcStyleInAllFrames();
|
| + // TextAutosizing updates RenderStyle during layout phase (via TextAutosizer::processSubtree).
|
| + // We should invoke setNeedsLayout here.
|
| + setNeedsLayoutInAllFrames();
|
| break;
|
| case SettingsDelegate::ScriptEnableChange:
|
| m_inspectorController->scriptsEnabled(settings().scriptEnabled());
|
| break;
|
| + case SettingsDelegate::FontFamilyChange:
|
| + for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext())
|
| + frame->document()->styleEngine()->updateGenericFontFamilySettings();
|
| + setNeedsRecalcStyleInAllFrames();
|
| + break;
|
| }
|
| }
|
|
|
|
|