diff -r d96eed154187 -r ca6d8a014f4b webengine/osswebengine/WebKit/s60/plugins/PluginSkin.cpp --- a/webengine/osswebengine/WebKit/s60/plugins/PluginSkin.cpp Tue Sep 14 23:23:58 2010 +0300 +++ b/webengine/osswebengine/WebKit/s60/plugins/PluginSkin.cpp Wed Sep 15 13:25:15 2010 +0300 @@ -168,7 +168,8 @@ m_handle(-1), m_instance(0), m_pluginfuncs(0), - m_resized(false) + m_resized(false), + m_OccReLoad(EFalse) { } @@ -776,8 +777,13 @@ } } - if (m_pluginwin) + if (m_pluginwin) { m_pluginwin->SetExtent( TPoint(0,0), TSize(0,0) ); + if (m_OccReLoad) { + setPluginWinClipedRect(); + m_OccReLoad = EFalse; + } + } } } @@ -1288,6 +1294,10 @@ void PluginSkin::reCreatePlugin() { + TBool visible = EFalse; + if (m_pluginwin && m_pluginwin->IsVisible()) + visible = ETrue; + TBuf16<4> apId; apId.Format( _L("%d"), m_frame->frameView()->topView()->accessPointId() ); @@ -1308,7 +1318,7 @@ } m_streams.clear(); - if (m_instance && m_pluginfuncs && m_pluginfuncs->destroy) { + if (m_instance && m_pluginfuncs && m_pluginfuncs->destroy) { m_pluginfuncs->destroy(m_instance, NULL); } User::Free(m_instance); m_instance = 0; @@ -1325,8 +1335,11 @@ NetscapePlugInStreamLoaderClient* pluginloader = NetscapePlugInStreamLoaderClient::NewL(m_url->Des(), this, core(m_frame)); if (pluginloader) { + if (visible) { + m_OccReLoad = ETrue; + } pluginloader->start(); - } + } } }