diff options
Diffstat (limited to 'Source/WebCore/css/DeprecatedStyleBuilder.cpp')
-rw-r--r-- | Source/WebCore/css/DeprecatedStyleBuilder.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/Source/WebCore/css/DeprecatedStyleBuilder.cpp b/Source/WebCore/css/DeprecatedStyleBuilder.cpp index 7c6105285..1d52de322 100644 --- a/Source/WebCore/css/DeprecatedStyleBuilder.cpp +++ b/Source/WebCore/css/DeprecatedStyleBuilder.cpp @@ -613,10 +613,18 @@ public: if (originalLength >= 1.0) length = 1.0; } - if (primitiveValue->isViewportPercentageHeight()) - length = styleResolver->document()->renderView()->viewportSize().height() * length / 100.0f; - else if (primitiveValue->isViewportPercentageWidth()) - length = styleResolver->document()->renderView()->viewportSize().width() * length / 100.0f; + if (primitiveValue->isViewportPercentageLength()) { + int viewPortHeight = styleResolver->document()->renderView()->viewportSize().height() * length / 100.0f; + int viewPortWidth = styleResolver->document()->renderView()->viewportSize().width() * length / 100.0f; + if (primitiveValue->isViewportPercentageHeight()) + length = viewPortHeight; + else if (primitiveValue->isViewportPercentageWidth()) + length = viewPortWidth; + else if (primitiveValue->isViewportPercentageMax()) + length = max(viewPortWidth, viewPortHeight); + else if (primitiveValue->isViewportPercentageMin()) + length = min(viewPortWidth, viewPortHeight); + } } else { ASSERT_NOT_REACHED(); length = 0; |