Fix #2048199. Enable zoom control in the overview mode. When "+" is pressed,
treat it as double click in the middle of the page.
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index 28e9b6d..be9daa5 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -743,7 +743,7 @@
 
     private void updateZoomButtonsEnabled() {
         boolean canZoomIn = mActualScale < mMaxZoomScale;
-        boolean canZoomOut = mActualScale > mMinZoomScale;
+        boolean canZoomOut = mActualScale > mMinZoomScale && !mInZoomOverview;
         if (!canZoomIn && !canZoomOut) {
             // Hide the zoom in and out buttons, as well as the fit to page
             // button, if the page cannot zoom
@@ -3890,7 +3890,7 @@
                         nativeHideCursor();
                     }
                     WebSettings settings = getSettings();
-                    if (settings.supportZoom() && !mInZoomOverview
+                    if (settings.supportZoom()
                             && settings.getBuiltInZoomControls()
                             && !mZoomButtonsController.isVisible()
                             && (canZoomScrollOut() ||
@@ -3959,7 +3959,7 @@
                     mUserScroll = true;
                 }
 
-                if (!getSettings().getBuiltInZoomControls() && !mInZoomOverview) {
+                if (!getSettings().getBuiltInZoomControls()) {
                     boolean showPlusMinus = mMinZoomScale < mMaxZoomScale;
                     boolean showMagnify = canZoomScrollOut();
                     if (mZoomControls != null && (showPlusMinus || showMagnify)) {
@@ -4544,9 +4544,17 @@
         // TODO: alternatively we can disallow this during draw history mode
         switchOutDrawHistory();
         // Center zooming to the center of the screen.
-        mZoomCenterX = getViewWidth() * .5f;
-        mZoomCenterY = getViewHeight() * .5f;
-        return zoomWithPreview(mActualScale * 1.25f);
+        if (mInZoomOverview) {
+            // if in overview mode, bring it back to normal mode
+            mLastTouchX = getViewWidth() * .5f;
+            mLastTouchY = getViewHeight() * .5f;
+            doDoubleTap();
+            return true;
+        } else {
+            mZoomCenterX = getViewWidth() * .5f;
+            mZoomCenterY = getViewHeight() * .5f;
+            return zoomWithPreview(mActualScale * 1.25f);
+        }
     }
 
     /**