Index: Source/core/css/resolver/FontBuilder.cpp |
diff --git a/Source/core/css/resolver/FontBuilder.cpp b/Source/core/css/resolver/FontBuilder.cpp |
index 9de7131f88c83e1a5cd87023769eaad8902f3197..98e2a13b0106825fdfbdf8912417c0e1427e41d8 100644 |
--- a/Source/core/css/resolver/FontBuilder.cpp |
+++ b/Source/core/css/resolver/FontBuilder.cpp |
@@ -102,7 +102,7 @@ void FontBuilder::setInitial(float effectiveZoom) |
scope.reset(); |
setFontFamilyToStandard(scope.fontDescription(), m_document); |
scope.fontDescription().setKeywordSize(CSSValueMedium - CSSValueXxSmall + 1); |
- setSize(scope.fontDescription(), effectiveZoom, FontSize::fontSizeForKeyword(m_document, CSSValueMedium, false)); |
+ setSize(scope.fontDescription(), effectiveZoom, FontSize::fontSizeForKeyword(m_document, CSSValueMedium, NonFixedPitchFont)); |
} |
void FontBuilder::inheritFrom(const FontDescription& fontDescription) |
@@ -166,7 +166,7 @@ void FontBuilder::setFontFamilyValue(CSSValue* value) |
FontFamily* currFamily = 0; |
// Before mapping in a new font-family property, we should reset the generic family. |
- bool oldFamilyUsedFixedDefaultSize = scope.fontDescription().useFixedDefaultSize(); |
+ FixedPitchFontType oldFixedPitchFontType = scope.fontDescription().fixedPitchFontType(); |
scope.fontDescription().setGenericFamily(FontDescription::NoFamily); |
for (CSSValueListIterator i = value; i.hasMore(); i.advance()) { |
@@ -232,15 +232,17 @@ void FontBuilder::setFontFamilyValue(CSSValue* value) |
if (!currFamily) |
return; |
- if (scope.fontDescription().keywordSize() && scope.fontDescription().useFixedDefaultSize() != oldFamilyUsedFixedDefaultSize) |
- scope.fontDescription().setSpecifiedSize(FontSize::fontSizeForKeyword(m_document, CSSValueXxSmall + scope.fontDescription().keywordSize() - 1, !oldFamilyUsedFixedDefaultSize)); |
+ if (scope.fontDescription().keywordSize() && scope.fontDescription().fixedPitchFontType() != oldFixedPitchFontType) { |
+ scope.fontDescription().setSpecifiedSize(FontSize::fontSizeForKeyword(m_document, |
+ static_cast<CSSValueID>(CSSValueXxSmall + scope.fontDescription().keywordSize() - 1), scope.fontDescription().fixedPitchFontType())); |
+ } |
} |
void FontBuilder::setFontSizeInitial() |
{ |
FontDescriptionChangeScope scope(this); |
- float size = FontSize::fontSizeForKeyword(m_document, CSSValueMedium, scope.fontDescription().useFixedDefaultSize()); |
+ float size = FontSize::fontSizeForKeyword(m_document, CSSValueMedium, scope.fontDescription().fixedPitchFontType()); |
if (size < 0) |
return; |
@@ -305,7 +307,7 @@ void FontBuilder::setFontSizeValue(CSSValue* value, RenderStyle* parentStyle, co |
case CSSValueXLarge: |
case CSSValueXxLarge: |
case CSSValueWebkitXxxLarge: |
- size = FontSize::fontSizeForKeyword(m_document, valueID, scope.fontDescription().useFixedDefaultSize()); |
+ size = FontSize::fontSizeForKeyword(m_document, valueID, scope.fontDescription().fixedPitchFontType()); |
scope.fontDescription().setKeywordSize(valueID - CSSValueXxSmall + 1); |
break; |
case CSSValueLarger: |
@@ -598,7 +600,7 @@ void FontBuilder::checkForGenericFamilyChange(RenderStyle* style, const RenderSt |
return; |
const FontDescription& parentFontDescription = parentStyle->fontDescription(); |
- if (scope.fontDescription().useFixedDefaultSize() == parentFontDescription.useFixedDefaultSize()) |
+ if (scope.fontDescription().fixedPitchFontType() == parentFontDescription.fixedPitchFontType()) |
return; |
// For now, lump all families but monospace together. |
@@ -612,13 +614,13 @@ void FontBuilder::checkForGenericFamilyChange(RenderStyle* style, const RenderSt |
// multiplying by our scale factor. |
float size; |
if (scope.fontDescription().keywordSize()) { |
- size = FontSize::fontSizeForKeyword(m_document, CSSValueXxSmall + scope.fontDescription().keywordSize() - 1, scope.fontDescription().useFixedDefaultSize()); |
+ size = FontSize::fontSizeForKeyword(m_document, static_cast<CSSValueID>(CSSValueXxSmall + scope.fontDescription().keywordSize() - 1), scope.fontDescription().fixedPitchFontType()); |
} else { |
Settings* settings = m_document->settings(); |
float fixedScaleFactor = (settings && settings->defaultFixedFontSize() && settings->defaultFontSize()) |
? static_cast<float>(settings->defaultFixedFontSize()) / settings->defaultFontSize() |
: 1; |
- size = parentFontDescription.useFixedDefaultSize() ? |
+ size = parentFontDescription.fixedPitchFontType() == FixedPitchFont ? |
scope.fontDescription().specifiedSize() / fixedScaleFactor : |
scope.fontDescription().specifiedSize() * fixedScaleFactor; |
} |
@@ -653,7 +655,7 @@ void FontBuilder::createFontForDocument(PassRefPtrWillBeRawPtr<FontSelector> fon |
setFontFamilyToStandard(fontDescription, m_document); |
fontDescription.setKeywordSize(CSSValueMedium - CSSValueXxSmall + 1); |
- int size = FontSize::fontSizeForKeyword(m_document, CSSValueMedium, false); |
+ int size = FontSize::fontSizeForKeyword(m_document, CSSValueMedium, NonFixedPitchFont); |
fontDescription.setSpecifiedSize(size); |
fontDescription.setComputedSize(getComputedSizeFromSpecifiedSize(fontDescription, documentStyle->effectiveZoom(), size)); |