am 6d45accc: don\'t layout when setting size from zoom if only height changed

Merge commit '6d45accc7166c84f94fdb5ca35602463ec4a32a4' into eclair-plus-aosp

* commit '6d45accc7166c84f94fdb5ca35602463ec4a32a4':
  don't layout when setting size from zoom if only height changed
This commit is contained in:
Cary Clark
2009-08-28 09:50:19 -07:00
committed by Android Git Automerger
2 changed files with 11 additions and 4 deletions

View File

@@ -1935,6 +1935,7 @@ public class WebView extends AbsoluteLayout
int mHeight;
int mTextWrapWidth;
float mScale;
boolean mIgnoreHeight;
}
/**
@@ -1969,6 +1970,7 @@ public class WebView extends AbsoluteLayout
data.mTextWrapWidth = mInZoomOverview ? Math.round(viewWidth
/ mLastScale) : newWidth;
data.mScale = mActualScale;
data.mIgnoreHeight = mZoomScale != 0 && !mHeightCanMeasure;
mWebViewCore.sendMessage(EventHub.VIEW_SIZE_CHANGED, data);
mLastWidthSent = newWidth;
mLastHeightSent = newHeight;

View File

@@ -418,7 +418,8 @@ final class WebViewCore {
should this be called nativeSetViewPortSize?
*/
private native void nativeSetSize(int width, int height, int screenWidth,
float scale, int realScreenWidth, int screenHeight);
float scale, int realScreenWidth, int screenHeight,
boolean ignoreHeight);
private native int nativeGetContentMinPrefWidth();
@@ -918,7 +919,8 @@ final class WebViewCore {
WebView.ViewSizeData data =
(WebView.ViewSizeData) msg.obj;
viewSizeChanged(data.mWidth, data.mHeight,
data.mTextWrapWidth, data.mScale);
data.mTextWrapWidth, data.mScale,
data.mIgnoreHeight);
break;
}
case SET_SCROLL_OFFSET:
@@ -1411,7 +1413,8 @@ final class WebViewCore {
private float mCurrentViewScale = 1.0f;
// notify webkit that our virtual view size changed size (after inv-zoom)
private void viewSizeChanged(int w, int h, int textwrapWidth, float scale) {
private void viewSizeChanged(int w, int h, int textwrapWidth, float scale,
boolean ignoreHeight) {
if (DebugFlags.WEB_VIEW_CORE) {
Log.v(LOGTAG, "viewSizeChanged w=" + w + "; h=" + h
+ "; textwrapWidth=" + textwrapWidth + "; scale=" + scale);
@@ -1447,7 +1450,7 @@ final class WebViewCore {
}
}
nativeSetSize(width, width == w ? h : Math.round((float) width * h / w),
textwrapWidth, scale, w, h);
textwrapWidth, scale, w, h, ignoreHeight);
// Remember the current width and height
boolean needInvalidate = (mCurrentViewWidth == 0);
mCurrentViewWidth = w;
@@ -1905,6 +1908,7 @@ final class WebViewCore {
// true. It is safe to use mWidth for mTextWrapWidth.
data.mTextWrapWidth = data.mWidth;
data.mScale = -1.0f;
data.mIgnoreHeight = false;
mEventHub.sendMessageAtFrontOfQueue(Message.obtain(null,
EventHub.VIEW_SIZE_CHANGED, data));
} else if (mSettings.getUseWideViewPort()) {
@@ -1926,6 +1930,7 @@ final class WebViewCore {
/ mCurrentViewWidth;
data.mTextWrapWidth = Math.round(webViewWidth
/ mRestoreState.mTextWrapScale);
data.mIgnoreHeight = false;
mEventHub.sendMessageAtFrontOfQueue(Message.obtain(null,
EventHub.VIEW_SIZE_CHANGED, data));
}