webengine/osswebengine/WebKit/s60/plugins/PluginSkin.cpp
branchRCL_3
changeset 99 ca6d8a014f4b
parent 94 919f36ff910f
--- 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();                            
-        }                                                
+        }
     }
 }