diff --git a/dom/html/ImageDocument.cpp b/dom/html/ImageDocument.cpp
index 7c32d44d8ba3..3a513883fbad 100644
--- a/dom/html/ImageDocument.cpp
+++ b/dom/html/ImageDocument.cpp
@@ -413,7 +413,7 @@ ImageDocument::RestoreImage()
imageContent->UnsetAttr(kNameSpaceID_None, nsGkAtoms::width, true);
imageContent->UnsetAttr(kNameSpaceID_None, nsGkAtoms::height, true);
- if (mImageIsOverflowing) {
+ if (ImageIsOverflowing()) {
SetModeClass(eOverflowing);
}
else {
@@ -441,7 +441,7 @@ ImageDocument::ToggleImageSize()
ResetZoomLevel();
RestoreImage();
}
- else if (mImageIsOverflowing) {
+ else if (ImageIsOverflowing()) {
ResetZoomLevel();
ShrinkToFit();
}
@@ -579,7 +579,7 @@ ImageDocument::HandleEvent(nsIDOMEvent* aEvent)
mShouldResize = false;
RestoreImageTo(x, y);
}
- else if (mImageIsOverflowing) {
+ else if (ImageIsOverflowing()) {
ShrinkToFit();
}
} else if (eventType.EqualsLiteral("load")) {
@@ -681,14 +681,14 @@ ImageDocument::CheckOverflowing(bool changeState)
mVisibleHeight = nsPresContext::AppUnitsToFloatCSSPixels(visibleArea.height);
}
- bool imageWasOverflowing = mImageIsOverflowing;
- mImageIsOverflowing =
- mImageWidth > mVisibleWidth || mImageHeight > mVisibleHeight;
- bool windowBecameBigEnough = imageWasOverflowing && !mImageIsOverflowing;
+ bool imageWasOverflowing = ImageIsOverflowing();
+ mImageIsOverflowingHorizontally = mImageWidth > mVisibleWidth;
+ mImageIsOverflowingVertically = mImageHeight > mVisibleHeight;
+ bool windowBecameBigEnough = imageWasOverflowing && !ImageIsOverflowing();
if (changeState || mShouldResize || mFirstResize ||
windowBecameBigEnough) {
- if (mImageIsOverflowing && (changeState || mShouldResize)) {
+ if (ImageIsOverflowing() && (changeState || mShouldResize)) {
ShrinkToFit();
}
else if (mImageIsResized || mFirstResize || windowBecameBigEnough) {
diff --git a/dom/html/ImageDocument.h b/dom/html/ImageDocument.h
index a35386975a65..039cd9b02d98 100644
--- a/dom/html/ImageDocument.h
+++ b/dom/html/ImageDocument.h
@@ -62,7 +62,7 @@ public:
}
bool ImageIsOverflowing() const
{
- return mImageIsOverflowing;
+ return mImageIsOverflowingHorizontally || mImageIsOverflowingVertically;
}
bool ImageIsResized() const
{
@@ -118,7 +118,8 @@ protected:
bool mResizeImageByDefault;
bool mClickResizingEnabled;
- bool mImageIsOverflowing;
+ bool mImageIsOverflowingHorizontally;
+ bool mImageIsOverflowingVertically;
// mImageIsResized is true if the image is currently resized
bool mImageIsResized;
// mShouldResize is true if the image should be resized when it doesn't fit