diff options
Diffstat (limited to 'Source/WebKit/android/plugins/PluginWidgetAndroid.cpp')
-rw-r--r-- | Source/WebKit/android/plugins/PluginWidgetAndroid.cpp | 17 |
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 |