Merge changes Ic9531e3c,I3f04433b into froyo

* changes:
  Cherry pick from master.
  Cherry pick from master.
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index e4ba2b0..9acfda5 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -6413,10 +6413,15 @@
                                     mLastDeferTouchY = y;
                                     startDrag();
                                 }
-                                doDrag((int) (mLastDeferTouchX - x),
-                                        (int) (mLastDeferTouchY - y));
-                                mLastDeferTouchX = x;
-                                mLastDeferTouchY = y;
+                                int deltaX = pinLocX((int) (mScrollX
+                                        + mLastDeferTouchX - x))
+                                        - mScrollX;
+                                int deltaY = pinLocY((int) (mScrollY
+                                        + mLastDeferTouchY - y))
+                                        - mScrollY;
+                                doDrag(deltaX, deltaY);
+                                if (deltaX != 0) mLastDeferTouchX = x;
+                                if (deltaY != 0) mLastDeferTouchY = y;
                                 break;
                             }
                             case MotionEvent.ACTION_UP: