summaryrefslogtreecommitdiffstats
path: root/WebKit/android/plugins
diff options
context:
space:
mode:
authorGrace Kloba <klobag@google.com>2009-12-16 14:19:39 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2009-12-16 14:19:39 -0800
commitf8edabae34835a386f3ddfda1974952698b9ece9 (patch)
tree3a3ec8ba4fa2b66d88cd067c008f7676c690abea /WebKit/android/plugins
parent5b2d816fcafa24b4d9c3c461fb1a3a0d880a93b5 (diff)
parenta82fdbb65304d541753351815d51ab4035a99dc9 (diff)
downloadexternal_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.cpp2
-rw-r--r--WebKit/android/plugins/PluginWidgetAndroid.cpp9
-rw-r--r--WebKit/android/plugins/PluginWidgetAndroid.h2
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();