зеркало из https://github.com/mozilla/gecko-dev.git
Bug 942736 - Account for hidden margins when validating viewport metrics. r=kats
This commit is contained in:
Родитель
0ffab26093
Коммит
33ce39f7b1
|
@ -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)
|
||||
|
|
|
@ -93,7 +93,7 @@ public class LayerMarginsAnimator {
|
|||
+ ", \"bottom\" : " + bottom + ", \"left\" : " + left + " }"));
|
||||
}
|
||||
|
||||
RectF getMaxMargins() {
|
||||
synchronized RectF getMaxMargins() {
|
||||
return mMaxMargins;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче