From 1bd20523ef1896ad4e6f7026cc54effdd1565d40 Mon Sep 17 00:00:00 2001 From: Derek Sollenberger Date: Thu, 6 Aug 2009 11:19:23 -0400 Subject: [PATCH] adding ability to fix the size of a surface view when created. --- core/java/android/webkit/WebViewCore.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java index 7cfe5b5a27177..ff4e736ecdf25 100644 --- a/core/java/android/webkit/WebViewCore.java +++ b/core/java/android/webkit/WebViewCore.java @@ -1991,14 +1991,16 @@ final class WebViewCore { implements SurfaceHolder.Callback { private final ViewManager.ChildView mChildView; private int mPointer; + private final boolean mIsFixedSize; SurfaceViewProxy(Context context, ViewManager.ChildView childView, - int pointer) { + int pointer, boolean isFixedSize) { super(context); setWillNotDraw(false); // this prevents the black box artifact getHolder().addCallback(this); mChildView = childView; mChildView.mView = this; mPointer = pointer; + mIsFixedSize = isFixedSize; } void destroy() { mPointer = 0; @@ -2006,6 +2008,10 @@ final class WebViewCore { } void attach(int x, int y, int width, int height) { mChildView.attachView(x, y, width, height); + + if (mIsFixedSize) { + getHolder().setFixedSize(width, height); + } } // SurfaceHolder.Callback methods @@ -2029,12 +2035,12 @@ final class WebViewCore { // PluginWidget functions for mainting SurfaceViews for the Surface drawing // model. - private SurfaceView createSurface(int nativePointer) { + private SurfaceView createSurface(int nativePointer, boolean isFixedSize) { if (mWebView == null) { return null; } return new SurfaceViewProxy(mContext, - mWebView.mViewManager.createView(), nativePointer); + mWebView.mViewManager.createView(), nativePointer, isFixedSize); } private void destroySurface(SurfaceView surface) {