am d55de404: Don\'t scroll the title bar off screen while loading.
Merge commit 'd55de40481c6ec7d8fbd1a38c80a6c66bf462a71' into eclair-plus-aosp * commit 'd55de40481c6ec7d8fbd1a38c80a6c66bf462a71': Don't scroll the title bar off screen while loading.
This commit is contained in:
@@ -420,7 +420,6 @@ public class WebView extends AbsoluteLayout
|
|||||||
private static final int STD_SPEED = 480; // pixels per second
|
private static final int STD_SPEED = 480; // pixels per second
|
||||||
// time for the longest scroll animation
|
// time for the longest scroll animation
|
||||||
private static final int MAX_DURATION = 750; // milliseconds
|
private static final int MAX_DURATION = 750; // milliseconds
|
||||||
private static final int SLIDE_TITLE_DURATION = 300; // milliseconds
|
|
||||||
private Scroller mScroller;
|
private Scroller mScroller;
|
||||||
|
|
||||||
private boolean mWrapContent;
|
private boolean mWrapContent;
|
||||||
@@ -2418,18 +2417,17 @@ public class WebView extends AbsoluteLayout
|
|||||||
if ((dx | dy) == 0) {
|
if ((dx | dy) == 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
// By this point we have added in the title bar's height. If the site
|
||||||
|
// is trying to scroll to the top of the page, scroll it to the top
|
||||||
|
// of the WebView including showing the title bar.
|
||||||
// mobile sites prefer to scroll to (0, 1), thus the + 1 below
|
// mobile sites prefer to scroll to (0, 1), thus the + 1 below
|
||||||
boolean slideTitle = getVisibleTitleHeight() > 0
|
if (getVisibleTitleHeight() > 0 && x == 0
|
||||||
&& y <= getTitleHeight() + 1;
|
&& y <= getTitleHeight() + 1) {
|
||||||
if (DebugFlags.WEB_VIEW) {
|
y = 0;
|
||||||
Log.v(LOGTAG, "pinScrollTo slideTitle=" + slideTitle
|
animate = false;
|
||||||
+ " getVisibleTitleHeight()=" + getVisibleTitleHeight()
|
|
||||||
+ " animationDuration=" + animationDuration + " y=" + y);
|
|
||||||
}
|
}
|
||||||
if (slideTitle || animate) {
|
if (animate) {
|
||||||
// Log.d(LOGTAG, "startScroll: " + dx + " " + dy);
|
// Log.d(LOGTAG, "startScroll: " + dx + " " + dy);
|
||||||
if (slideTitle && animationDuration < SLIDE_TITLE_DURATION)
|
|
||||||
animationDuration = SLIDE_TITLE_DURATION;
|
|
||||||
mScroller.startScroll(mScrollX, mScrollY, dx, dy,
|
mScroller.startScroll(mScrollX, mScrollY, dx, dy,
|
||||||
animationDuration > 0 ? animationDuration : computeDuration(dx, dy));
|
animationDuration > 0 ? animationDuration : computeDuration(dx, dy));
|
||||||
invalidate();
|
invalidate();
|
||||||
@@ -4809,8 +4807,14 @@ public class WebView extends AbsoluteLayout
|
|||||||
mMaxZoomScale = restoreState.mMaxScale;
|
mMaxZoomScale = restoreState.mMaxScale;
|
||||||
}
|
}
|
||||||
setNewZoomScale(mLastScale, false);
|
setNewZoomScale(mLastScale, false);
|
||||||
if (getVisibleTitleHeight() == 0
|
if (getTitleHeight() != 0 && restoreState.mScrollX == 0
|
||||||
|| restoreState.mScrollY != 0) {
|
&& restoreState.mScrollY == 0) {
|
||||||
|
// If there is a title bar, and the page is being
|
||||||
|
// restored to (0,0), do not scroll the title bar
|
||||||
|
// off the page.
|
||||||
|
abortAnimation();
|
||||||
|
scrollTo(0,0);
|
||||||
|
} else {
|
||||||
setContentScrollTo(restoreState.mScrollX,
|
setContentScrollTo(restoreState.mScrollX,
|
||||||
restoreState.mScrollY);
|
restoreState.mScrollY);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user