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

This commit is contained in:
Grace Kloba
2010-04-02 16:41:13 -07:00
committed by Android (Google) Code Review

View File

@ -2066,7 +2066,7 @@ public class WebView extends AbsoluteLayout
mScrollX = pinLocX(mScrollX); mScrollX = pinLocX(mScrollX);
mScrollY = pinLocY(mScrollY); mScrollY = pinLocY(mScrollY);
if (oldX != mScrollX || oldY != mScrollY) { if (oldX != mScrollX || oldY != mScrollY) {
sendOurVisibleRect(); onScrollChanged(mScrollX, mScrollY, oldX, oldY);
} }
if (!mScroller.isFinished()) { if (!mScroller.isFinished()) {
// We are in the middle of a scroll. Repin the final scroll // We are in the middle of a scroll. Repin the final scroll
@ -2130,9 +2130,12 @@ public class WebView extends AbsoluteLayout
mScrollX = pinLocX(Math.round(sx)); mScrollX = pinLocX(Math.round(sx));
mScrollY = pinLocY(Math.round(sy)); mScrollY = pinLocY(Math.round(sy));
if (oldX != mScrollX || oldY != mScrollY) {
onScrollChanged(mScrollX, mScrollY, oldX, oldY);
}
// update webkit // update webkit
sendViewSizeZoom(); sendViewSizeZoom();
sendOurVisibleRect();
} }
} }
} }
@ -2634,9 +2637,7 @@ public class WebView extends AbsoluteLayout
mScrollY = mScroller.getCurrY(); mScrollY = mScroller.getCurrY();
postInvalidate(); // So we draw again postInvalidate(); // So we draw again
if (oldX != mScrollX || oldY != mScrollY) { if (oldX != mScrollX || oldY != mScrollY) {
// As onScrollChanged() is not called, sendOurVisibleRect() onScrollChanged(mScrollX, mScrollY, oldX, oldY);
// needs to be called explicitly.
sendOurVisibleRect();
} }
} else { } else {
super.computeScroll(); super.computeScroll();
@ -3347,8 +3348,10 @@ public class WebView extends AbsoluteLayout
mUserScroll = false; mUserScroll = false;
mWebViewCore.sendMessage(EventHub.SYNC_SCROLL, oldScrollX, mWebViewCore.sendMessage(EventHub.SYNC_SCROLL, oldScrollX,
oldScrollY); oldScrollY);
onScrollChanged(mScrollX, mScrollY, oldScrollX, oldScrollY);
} else {
sendOurVisibleRect();
} }
sendOurVisibleRect();
} }
} }