diff options
Diffstat (limited to 'WebCore/rendering/style/StyleGeneratedImage.cpp')
-rw-r--r-- | WebCore/rendering/style/StyleGeneratedImage.cpp | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/WebCore/rendering/style/StyleGeneratedImage.cpp b/WebCore/rendering/style/StyleGeneratedImage.cpp index fa361e8..610e73d 100644 --- a/WebCore/rendering/style/StyleGeneratedImage.cpp +++ b/WebCore/rendering/style/StyleGeneratedImage.cpp @@ -34,11 +34,26 @@ PassRefPtr<CSSValue> StyleGeneratedImage::cssValue() return m_generator; } -IntSize StyleGeneratedImage::imageSize(const RenderObject* renderer, float /* multiplier */) const +IntSize StyleGeneratedImage::imageSize(const RenderObject* renderer, float multiplier) const { - // We can ignore the multiplier, since we always store a raw zoomed size. - if (m_fixedSize) - return m_generator->fixedSize(renderer); + if (m_fixedSize) { + IntSize fixedSize = m_generator->fixedSize(renderer); + if (multiplier == 1.0f) + return fixedSize; + + int width = fixedSize.width() * multiplier; + int height = fixedSize.height() * multiplier; + + // Don't let images that have a width/height >= 1 shrink below 1 when zoomed. + if (fixedSize.width() > 0) + width = max(1, width); + + if (fixedSize.height() > 0) + height = max(1, height); + + return IntSize(width, height); + } + return m_containerSize; } |