Bug 942736 - Account for hidden margins when validating viewport metrics. r=kats

This commit is contained in:
Eugen Sawin
2014-10-29 14:06:55 +01:00
parent 50c99780e3
commit b884efc4cb
2 changed files with 8 additions and 7 deletions

View File

@@ -1029,6 +1029,11 @@ class JavaPanZoomController
float zoomFactor = viewportMetrics.zoomFactor;
RectF pageRect = viewportMetrics.getPageRect();
RectF viewport = viewportMetrics.getViewport();
RectF maxMargins = mTarget.getMaxMargins();
RectF margins = new RectF(Math.max(maxMargins.left, viewportMetrics.marginLeft),
Math.max(maxMargins.top, viewportMetrics.marginTop),
Math.max(maxMargins.right, viewportMetrics.marginRight),
Math.max(maxMargins.bottom, viewportMetrics.marginBottom));
float focusX = viewport.width() / 2.0f;
float focusY = viewport.height() / 2.0f;
@@ -1050,18 +1055,14 @@ class JavaPanZoomController
// Ensure minZoomFactor keeps the page at least as big as the viewport.
if (pageRect.width() > 0) {
float pageWidth = pageRect.width() +
viewportMetrics.marginLeft +
viewportMetrics.marginRight;
float pageWidth = pageRect.width() + margins.left + margins.right;
float scaleFactor = viewport.width() / pageWidth;
minZoomFactor = Math.max(minZoomFactor, zoomFactor * scaleFactor);
if (viewport.width() > pageWidth)
focusX = 0.0f;
}
if (pageRect.height() > 0) {
float pageHeight = pageRect.height() +
viewportMetrics.marginTop +
viewportMetrics.marginBottom;
float pageHeight = pageRect.height() + margins.top + margins.bottom;
float scaleFactor = viewport.height() / pageHeight;
minZoomFactor = Math.max(minZoomFactor, zoomFactor * scaleFactor);
if (viewport.height() > pageHeight)