Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3c72fff0 authored by Grace Kloba's avatar Grace Kloba
Browse files

Some mobile sites, like m.www.yahoo.com, slashdot.org (iPhone version),

have a bigger minPrefWidth than the screen width. So we don't want to force
the minZoomScale to be same as defaultScale. Otherwise we won't be able to
zoom out in these sites.

Fix http://b/issue?id=2090718
parent 93a751d6
Loading
Loading
Loading
Loading
+18 −7
Original line number Original line Diff line number Diff line
@@ -5203,8 +5203,19 @@ public class WebView extends AbsoluteLayout
                        mInZoomOverview = false;
                        mInZoomOverview = false;
                        mLastScale = restoreState.mTextWrapScale;
                        mLastScale = restoreState.mTextWrapScale;
                        if (restoreState.mMinScale == 0) {
                        if (restoreState.mMinScale == 0) {
                            if (restoreState.mMobileSite) {
                                if (draw.mMinPrefWidth > draw.mViewPoint.x) {
                                    mMinZoomScale = (float) viewWidth
                                            / draw.mMinPrefWidth;
                                    mMinZoomScaleFixed = false;
                                } else {
                                    mMinZoomScale = mDefaultScale;
                                    mMinZoomScaleFixed = true;
                                }
                            } else {
                                mMinZoomScale = DEFAULT_MIN_ZOOM_SCALE;
                                mMinZoomScale = DEFAULT_MIN_ZOOM_SCALE;
                                mMinZoomScaleFixed = false;
                                mMinZoomScaleFixed = false;
                            }
                        } else {
                        } else {
                            mMinZoomScale = restoreState.mMinScale;
                            mMinZoomScale = restoreState.mMinScale;
                            mMinZoomScaleFixed = true;
                            mMinZoomScaleFixed = true;
@@ -5217,11 +5228,11 @@ public class WebView extends AbsoluteLayout
                        setNewZoomScale(mLastScale, false);
                        setNewZoomScale(mLastScale, false);
                        setContentScrollTo(restoreState.mScrollX,
                        setContentScrollTo(restoreState.mScrollX,
                                restoreState.mScrollY);
                                restoreState.mScrollY);
                        if (!ENABLE_DOUBLETAP_ZOOM
                        if (ENABLE_DOUBLETAP_ZOOM && useWideViewport
                                || !settings.getLoadWithOverviewMode()) {
                                && settings.getLoadWithOverviewMode()) {
                        } else {
                            if (restoreState.mViewScale == 0
                            if (useWideViewport
                                    || (restoreState.mMobileSite
                                    && restoreState.mViewScale == 0) {
                                            && mMinZoomScale < mDefaultScale)) {
                                mInZoomOverview = true;
                                mInZoomOverview = true;
                            }
                            }
                        }
                        }
+4 −4
Original line number Original line Diff line number Diff line
@@ -1572,7 +1572,10 @@ final class WebViewCore {
            // layout.
            // layout.
            draw.mViewPoint = new Point(mCurrentViewWidth, mCurrentViewHeight);
            draw.mViewPoint = new Point(mCurrentViewWidth, mCurrentViewHeight);
            if (WebView.ENABLE_DOUBLETAP_ZOOM && mSettings.getUseWideViewPort()) {
            if (WebView.ENABLE_DOUBLETAP_ZOOM && mSettings.getUseWideViewPort()) {
                draw.mMinPrefWidth = Math.max(DEFAULT_VIEWPORT_WIDTH,
                draw.mMinPrefWidth = Math.max(
                        mViewportWidth == -1 ? DEFAULT_VIEWPORT_WIDTH
                                : (mViewportWidth == 0 ? mCurrentViewWidth
                                        : mViewportWidth),
                        nativeGetContentMinPrefWidth());
                        nativeGetContentMinPrefWidth());
            }
            }
            if (mRestoreState != null) {
            if (mRestoreState != null) {
@@ -1859,9 +1862,6 @@ final class WebViewCore {
            if (mViewportInitialScale == 0) {
            if (mViewportInitialScale == 0) {
                mViewportInitialScale = WebView.DEFAULT_SCALE_PERCENT;
                mViewportInitialScale = WebView.DEFAULT_SCALE_PERCENT;
            }
            }
            if (mViewportMinimumScale == 0) {
                mViewportMinimumScale = WebView.DEFAULT_SCALE_PERCENT;
            }
        }
        }
        if (mViewportUserScalable == false) {
        if (mViewportUserScalable == false) {
            mViewportInitialScale = WebView.DEFAULT_SCALE_PERCENT;
            mViewportInitialScale = WebView.DEFAULT_SCALE_PERCENT;