Make sure when WebView modified mScrollX/Y directly,
onScrollChanged() is called so that the View system
can do what it needs to adjust.

As WebView's onScrollChanged will call sendOurVisibleRect(),
we don't need to call it explicitly any more.

Fix http://b/issue?id=2438457
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index 74229b8..0eb5177 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -2066,7 +2066,7 @@
                 mScrollX = pinLocX(mScrollX);
                 mScrollY = pinLocY(mScrollY);
                 if (oldX != mScrollX || oldY != mScrollY) {
-                    sendOurVisibleRect();
+                    onScrollChanged(mScrollX, mScrollY, oldX, oldY);
                 }
                 if (!mScroller.isFinished()) {
                     // We are in the middle of a scroll.  Repin the final scroll
@@ -2130,9 +2130,12 @@
                 mScrollX = pinLocX(Math.round(sx));
                 mScrollY = pinLocY(Math.round(sy));
 
+                if (oldX != mScrollX || oldY != mScrollY) {
+                    onScrollChanged(mScrollX, mScrollY, oldX, oldY);
+                }
+
                 // update webkit
                 sendViewSizeZoom();
-                sendOurVisibleRect();
             }
         }
     }
@@ -2634,9 +2637,7 @@
             mScrollY = mScroller.getCurrY();
             postInvalidate();  // So we draw again
             if (oldX != mScrollX || oldY != mScrollY) {
-                // As onScrollChanged() is not called, sendOurVisibleRect()
-                // needs to be called explicitly.
-                sendOurVisibleRect();
+                onScrollChanged(mScrollX, mScrollY, oldX, oldY);
             }
         } else {
             super.computeScroll();
@@ -3347,8 +3348,10 @@
                 mUserScroll = false;
                 mWebViewCore.sendMessage(EventHub.SYNC_SCROLL, oldScrollX,
                         oldScrollY);
+                onScrollChanged(mScrollX, mScrollY, oldScrollX, oldScrollY);
+            } else {
+                sendOurVisibleRect();
             }
-            sendOurVisibleRect();
         }
     }