Bug 539356 - Part 27 - Make nsImageFrame's overflow include the AltFeedback image if it will use one. r=roc

This commit is contained in:
Matt Woodrow 2012-08-29 17:48:44 +12:00
parent db77ca702c
commit 742de4dfd9
5 changed files with 23 additions and 4 deletions

View File

@ -865,6 +865,21 @@ nsImageFrame::Reflow(nsPresContext* aPresContext,
}
aMetrics.SetOverflowAreasToDesiredBounds();
nsEventStates contentState = mContent->AsElement()->State();
bool imageOK = IMAGE_OK(contentState, true);
// Determine if the size is available
bool haveSize = false;
if (loadStatus & imgIRequest::STATUS_SIZE_AVAILABLE) {
haveSize = true;
}
if (!imageOK || !haveSize) {
nsRect altFeedbackSize(0, 0,
2*(nsPresContext::CSSPixelsToAppUnits(ICON_SIZE+ICON_PADDING+ALT_BORDER_WIDTH)),
2*(nsPresContext::CSSPixelsToAppUnits(ICON_SIZE+ICON_PADDING+ALT_BORDER_WIDTH)));
aMetrics.mOverflowAreas.UnionAllWith(altFeedbackSize);
}
FinishAndStoreOverflow(&aMetrics);
NS_FRAME_TRACE(NS_FRAME_TRACE_CALLS,

View File

@ -2,11 +2,12 @@
<html class="reftest-wait">
<head>
<script>
window.onload = function() {
function doTest() {
window.frames[0].document.body.innerHTML =
"<img src='passouter.png' " +
"onload='window.parent.document.documentElement.className = &quot;&quot;'>";
}
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</head>
<body>

View File

@ -2,11 +2,12 @@
<html class="reftest-wait">
<head>
<script>
window.onload = function() {
function doTest() {
window.frames[0].document.body.innerHTML =
"<img src='passouter.png' " +
"onload='window.parent.document.documentElement.className = &quot;&quot;'>";
}
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</head>
<body>

View File

@ -2,7 +2,7 @@
<html class="reftest-wait">
<head>
<script>
window.onload = function() {
function doTest() {
window.frames[0].location =
'javascript:document.write(""); document.close(); ' +
'parent.continueTest();'
@ -16,6 +16,7 @@
"onload='window.parent.document.documentElement.className = &quot;&quot;'>";
}, 0);
}
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</head>
<body>

View File

@ -2,7 +2,7 @@
<html class="reftest-wait">
<head>
<script>
window.onload = function() {
function doTest() {
window.frames[0].location =
'javascript:document.write(""); document.close(); ' +
'parent.continueTest();'
@ -16,6 +16,7 @@
"onload='window.parent.document.documentElement.className = &quot;&quot;'>";
}, 0);
}
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</head>
<body>