diff options
-rw-r--r-- | webkit/glue/webplugin_impl.cc | 13 | ||||
-rw-r--r-- | webkit/glue/webplugin_impl.h | 1 |
2 files changed, 14 insertions, 0 deletions
diff --git a/webkit/glue/webplugin_impl.cc b/webkit/glue/webplugin_impl.cc index 8449b89..09b6974 100644 --- a/webkit/glue/webplugin_impl.cc +++ b/webkit/glue/webplugin_impl.cc @@ -207,6 +207,19 @@ void WebPluginContainer::frameRectsChanged() { impl_->setFrameRect(frameRect()); } +// We override this function, to make sure that geometry updates are sent +// over to the plugin. For e.g. when a plugin is instantiated it does +// not have a valid parent. As a result the first geometry update from +// webkit is ignored. This function is called when the plugin eventually +// gets a parent. +void WebPluginContainer::setParentVisible(bool visible) { + WebCore::Widget::setParentVisible(visible); + if (visible) + show(); + else + hide(); +} + // We override this function so that if the plugin is windowed, we can call // NPP_SetWindow at the first possible moment. This ensures that NPP_SetWindow // is called before the manual load data is sent to a plugin. If this order is diff --git a/webkit/glue/webplugin_impl.h b/webkit/glue/webplugin_impl.h index d2c9988..1373caf 100644 --- a/webkit/glue/webplugin_impl.h +++ b/webkit/glue/webplugin_impl.h @@ -67,6 +67,7 @@ class WebPluginContainer : public WebCore::Widget { virtual void hide(); virtual void handleEvent(WebCore::Event* event); virtual void frameRectsChanged(); + virtual void setParentVisible(bool visible); virtual void setParent(WebCore::ScrollView* view); #if USE(JSC) |