Fine tune the zoom overview behavior.
issue: 3451476 Change-Id: Idc267979ae0b33f4f2fbcb9aab7739bdd1dc1eff
This commit is contained in:
@@ -3302,7 +3302,7 @@ public class WebView extends AbsoluteLayout
|
||||
}
|
||||
mPageThatNeedsToSlideTitleBarOffScreen = null;
|
||||
}
|
||||
|
||||
mZoomManager.onPageFinished(url);
|
||||
injectAccessibilityForUrl(url);
|
||||
}
|
||||
|
||||
|
||||
@@ -875,12 +875,21 @@ class ZoomManager {
|
||||
// fit the content width to the current view for the first new picture
|
||||
// after first layout.
|
||||
boolean scaleHasDiff = exceedsMinScaleIncrement(newZoomOverviewScale, mActualScale);
|
||||
if (!mWebView.drawHistory() && mInitialZoomOverview && scaleHasDiff) {
|
||||
// Make sure the actual scale is no less than zoom overview scale.
|
||||
boolean scaleLessThanOverview =
|
||||
(newZoomOverviewScale - mActualScale) >= MINIMUM_SCALE_INCREMENT;
|
||||
// Make sure mobile sites are correctly handled since mobile site will
|
||||
// change content width after rotating.
|
||||
boolean mobileSiteInOverview = mInZoomOverview &&
|
||||
!exceedsMinScaleIncrement(newZoomOverviewScale, 1.0f);
|
||||
if (!mWebView.drawHistory() &&
|
||||
(mInitialZoomOverview || scaleLessThanOverview || mobileSiteInOverview) &&
|
||||
scaleHasDiff) {
|
||||
mInitialZoomOverview = false;
|
||||
setZoomScale(newZoomOverviewScale, !willScaleTriggerZoom(mTextWrapScale) &&
|
||||
!mWebView.getSettings().getUseFixedViewport());
|
||||
} else if (scaleHasDiff) {
|
||||
mInZoomOverview = false;
|
||||
} else {
|
||||
mInZoomOverview = !scaleHasDiff;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1061,4 +1070,12 @@ class ZoomManager {
|
||||
public void setHardwareAccelerated() {
|
||||
mHardwareAccelerated = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* OnPageFinished called by webview when a page is fully loaded.
|
||||
*/
|
||||
/* package*/ void onPageFinished(String url) {
|
||||
// Turn off initial zoom overview flag when a page is fully loaded.
|
||||
mInitialZoomOverview = false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user