diff options
| author | Grace Kloba <klobag@google.com> | 2009-12-16 14:19:39 -0800 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2009-12-16 14:19:39 -0800 |
| commit | f8edabae34835a386f3ddfda1974952698b9ece9 (patch) | |
| tree | 3a3ec8ba4fa2b66d88cd067c008f7676c690abea /WebKit/android/plugins | |
| parent | 5b2d816fcafa24b4d9c3c461fb1a3a0d880a93b5 (diff) | |
| parent | a82fdbb65304d541753351815d51ab4035a99dc9 (diff) | |
| download | external_webkit-f8edabae34835a386f3ddfda1974952698b9ece9.zip external_webkit-f8edabae34835a386f3ddfda1974952698b9ece9.tar.gz external_webkit-f8edabae34835a386f3ddfda1974952698b9ece9.tar.bz2 | |
am a82fdbb6: am 050a2ac7: Merge change Ifcce71fa into eclair-mr2
Merge commit 'a82fdbb65304d541753351815d51ab4035a99dc9'
* commit 'a82fdbb65304d541753351815d51ab4035a99dc9':
Implement the full screen WebView plugin.
Diffstat (limited to 'WebKit/android/plugins')
| -rw-r--r-- | WebKit/android/plugins/ANPWindowInterface.cpp | 2 | ||||
| -rw-r--r-- | WebKit/android/plugins/PluginWidgetAndroid.cpp | 9 | ||||
| -rw-r--r-- | WebKit/android/plugins/PluginWidgetAndroid.h | 2 |
3 files changed, 12 insertions, 1 deletions
diff --git a/WebKit/android/plugins/ANPWindowInterface.cpp b/WebKit/android/plugins/ANPWindowInterface.cpp index c8c2c70..f3304a9 100644 --- a/WebKit/android/plugins/ANPWindowInterface.cpp +++ b/WebKit/android/plugins/ANPWindowInterface.cpp @@ -54,6 +54,8 @@ static void anp_showKeyboard(NPP instance, bool value) { static void anp_requestFullScreen(NPP instance) { PluginView* pluginView = pluginViewForInstance(instance); + // call focusPluginElement() so that the pluginView receives keyboard events + pluginView->focusPluginElement(); PluginWidgetAndroid* pluginWidget = pluginView->platformPluginWidget(); pluginWidget->requestFullScreen(); } diff --git a/WebKit/android/plugins/PluginWidgetAndroid.cpp b/WebKit/android/plugins/PluginWidgetAndroid.cpp index f8862b2..cd7076d 100644 --- a/WebKit/android/plugins/PluginWidgetAndroid.cpp +++ b/WebKit/android/plugins/PluginWidgetAndroid.cpp @@ -135,6 +135,10 @@ void PluginWidgetAndroid::setWindow(NPWindow* window, bool isTransparent) { m_embeddedView = env->NewGlobalRef(tempObj); } } + if (m_isFullScreen && m_pluginBounds != oldPluginBounds) { + m_core->updateFullScreenPlugin(docPoint.x(), docPoint.y(), + window->width, window->height); + } } else { m_flipPixelRef->safeUnref(); m_flipPixelRef = new SkFlipPixelRef(computeConfig(isTransparent), @@ -437,7 +441,10 @@ void PluginWidgetAndroid::requestFullScreen() { return; } - m_core->showFullScreenPlugin(m_webkitPlugin, m_pluginView->instance()); + IntPoint docPoint = frameToDocumentCoords(m_pluginWindow->x, m_pluginWindow->y); + m_core->showFullScreenPlugin(m_webkitPlugin, m_pluginView->instance(), + docPoint.x(), docPoint.y(), m_pluginWindow->width, + m_pluginWindow->height); m_isFullScreen = true; } diff --git a/WebKit/android/plugins/PluginWidgetAndroid.h b/WebKit/android/plugins/PluginWidgetAndroid.h index ef3e40c..3a76073 100644 --- a/WebKit/android/plugins/PluginWidgetAndroid.h +++ b/WebKit/android/plugins/PluginWidgetAndroid.h @@ -145,6 +145,8 @@ struct PluginWidgetAndroid { */ void exitFullScreen(bool pluginInitiated); + bool inFullScreen() { return m_isFullScreen; } + private: WebCore::IntPoint frameToDocumentCoords(int frameX, int frameY) const; void computeVisibleFrameRect(); |
