summaryrefslogtreecommitdiffstats
path: root/Source/WebKit/android/plugins/PluginWidgetAndroid.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/android/plugins/PluginWidgetAndroid.cpp')
-rw-r--r--Source/WebKit/android/plugins/PluginWidgetAndroid.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/Source/WebKit/android/plugins/PluginWidgetAndroid.cpp b/Source/WebKit/android/plugins/PluginWidgetAndroid.cpp
index 761e948..fc98837 100644
--- a/Source/WebKit/android/plugins/PluginWidgetAndroid.cpp
+++ b/Source/WebKit/android/plugins/PluginWidgetAndroid.cpp
@@ -76,6 +76,7 @@ PluginWidgetAndroid::PluginWidgetAndroid(WebCore::PluginView* view)
m_layer = 0;
m_powerState = kDefault_ANPPowerState;
m_fullScreenOrientation = -1;
+ m_drawEventDelayed = false;
}
PluginWidgetAndroid::~PluginWidgetAndroid() {
@@ -175,6 +176,14 @@ bool PluginWidgetAndroid::setDrawingModel(ANPDrawingModel model) {
return true;
}
+void PluginWidgetAndroid::checkSurfaceReady() {
+ if(!m_drawEventDelayed)
+ return;
+
+ m_drawEventDelayed = false;
+ sendSizeAndVisibilityEvents(true);
+}
+
// returned rect is in the page coordinate
bool PluginWidgetAndroid::isDirty(SkIRect* rect) const {
// nothing to report if we haven't had setWindow() called yet
@@ -382,8 +391,14 @@ bool PluginWidgetAndroid::isAcceptingEvent(ANPEventFlag flag) {
}
void PluginWidgetAndroid::sendSizeAndVisibilityEvents(const bool updateDimensions) {
- // TODO update the bitmap size based on the zoom? (for kBitmap_ANPDrawingModel)
+ if (m_drawingModel == kOpenGL_ANPDrawingModel &&
+ !m_layer->acquireNativeWindowForContent()) {
+ m_drawEventDelayed = true;
+ return;
+ }
+
+ // TODO update the bitmap size based on the zoom? (for kBitmap_ANPDrawingModel)
const float zoomLevel = m_core->scale();
// notify the plugin of the new size