From: Derek Sollenberger Date: Thu, 6 Aug 2009 14:43:25 +0000 (-0400) Subject: fixing the surface size if the plugin elects to not handle zoomEvents. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=eab880ad54e75ed123123ba131fbf82099c7c270;p=android-x86%2Fexternal-webkit.git fixing the surface size if the plugin elects to not handle zoomEvents. --- diff --git a/WebKit/android/jni/WebViewCore.cpp b/WebKit/android/jni/WebViewCore.cpp index 35aeedbde..e743effad 100644 --- a/WebKit/android/jni/WebViewCore.cpp +++ b/WebKit/android/jni/WebViewCore.cpp @@ -254,7 +254,7 @@ WebViewCore::WebViewCore(JNIEnv* env, jobject javaWebViewCore, WebCore::Frame* m m_javaGlue->m_geolocationPermissionsShowPrompt = GetJMethod(env, clazz, "geolocationPermissionsShowPrompt", "(Ljava/lang/String;)V"); m_javaGlue->m_geolocationPermissionsHidePrompt = GetJMethod(env, clazz, "geolocationPermissionsHidePrompt", "()V"); m_javaGlue->m_addMessageToConsole = GetJMethod(env, clazz, "addMessageToConsole", "(Ljava/lang/String;ILjava/lang/String;)V"); - m_javaGlue->m_createSurface = GetJMethod(env, clazz, "createSurface", "(I)Landroid/view/SurfaceView;"); + m_javaGlue->m_createSurface = GetJMethod(env, clazz, "createSurface", "(IZ)Landroid/view/SurfaceView;"); m_javaGlue->m_destroySurface = GetJMethod(env, clazz, "destroySurface", "(Landroid/view/SurfaceView;)V"); m_javaGlue->m_attachSurface = GetJMethod(env, clazz, "attachSurface", "(Landroid/view/SurfaceView;IIII)V"); @@ -2095,11 +2095,11 @@ void WebViewCore::setBackgroundColor(SkColor c) view->setBaseBackgroundColor(bcolor); } -jobject WebViewCore::createSurface(SurfaceCallback* cb) +jobject WebViewCore::createSurface(SurfaceCallback* cb, bool isFixedSize) { JNIEnv* env = JSC::Bindings::getJNIEnv(); jobject surface = env->CallObjectMethod(m_javaGlue->object(env).get(), - m_javaGlue->m_createSurface, (int) cb); + m_javaGlue->m_createSurface, (int) cb, isFixedSize); checkException(env); return surface; } diff --git a/WebKit/android/jni/WebViewCore.h b/WebKit/android/jni/WebViewCore.h index a2737c88c..f763ee548 100644 --- a/WebKit/android/jni/WebViewCore.h +++ b/WebKit/android/jni/WebViewCore.h @@ -345,7 +345,7 @@ namespace android { void requestKeyboard(bool); // Creates a SurfaceView for a plugin - jobject createSurface(SurfaceCallback* cb); + jobject createSurface(SurfaceCallback* cb, bool isFixedSize); // Destroys the SurfaceView after removing from the view system. void destroySurface(jobject surface); diff --git a/WebKit/android/plugins/PluginSurface.cpp b/WebKit/android/plugins/PluginSurface.cpp index aba026359..c5bd74a0a 100644 --- a/WebKit/android/plugins/PluginSurface.cpp +++ b/WebKit/android/plugins/PluginSurface.cpp @@ -78,11 +78,11 @@ static inline SkBitmap::Config convertPixelFormat(PixelFormat format) { } } -PluginSurface::PluginSurface(PluginWidgetAndroid* widget) +PluginSurface::PluginSurface(PluginWidgetAndroid* widget, bool isFixedSize) : m_jSurfaceView(0) , m_widget(widget) { // Create our java SurfaceView. - jobject obj = widget->webViewCore()->createSurface(this); + jobject obj = widget->webViewCore()->createSurface(this, isFixedSize); if (obj) { JNIEnv* env = JSC::Bindings::getJNIEnv(); m_jSurfaceView = env->NewGlobalRef(obj); diff --git a/WebKit/android/plugins/PluginSurface.h b/WebKit/android/plugins/PluginSurface.h index b8cbac9fb..2b2b57af9 100644 --- a/WebKit/android/plugins/PluginSurface.h +++ b/WebKit/android/plugins/PluginSurface.h @@ -50,7 +50,7 @@ class Surface; class PluginSurface : public SurfaceCallback { public: - PluginSurface(PluginWidgetAndroid* widget); + PluginSurface(PluginWidgetAndroid* widget, bool isFixedSize); virtual ~PluginSurface() { destroy(); } diff --git a/WebKit/android/plugins/PluginWidgetAndroid.cpp b/WebKit/android/plugins/PluginWidgetAndroid.cpp index c947b3b87..6e0536011 100644 --- a/WebKit/android/plugins/PluginWidgetAndroid.cpp +++ b/WebKit/android/plugins/PluginWidgetAndroid.cpp @@ -214,7 +214,7 @@ ANPSurface* PluginWidgetAndroid::createSurface(ANPSurfaceType ignored) { if (m_drawingModel != kSurface_ANPDrawingModel) { return NULL; } - m_surface.set(new android::PluginSurface(this)); + m_surface.set(new android::PluginSurface(this, !isAcceptingEvent(kZoom_ANPEventFlag))); ANPSurface* surface = new ANPSurface; surface->data = m_surface.get(); surface->type = ignored;