summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering/style/StyleGeneratedImage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/rendering/style/StyleGeneratedImage.cpp')
-rw-r--r--WebCore/rendering/style/StyleGeneratedImage.cpp23
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;
}