webengine/osswebengine/WebKit/s60/webview/WebView.cpp
branchRCL_3
changeset 58 220a17280356
parent 42 d39add9822e2
child 59 1f3c3f2f5b0a
--- a/webengine/osswebengine/WebKit/s60/webview/WebView.cpp	Fri Feb 19 23:55:03 2010 +0200
+++ b/webengine/osswebengine/WebKit/s60/webview/WebView.cpp	Fri Mar 12 15:48:51 2010 +0200
@@ -131,6 +131,8 @@
 const int KZoomDefaultLevel = 8; //100%
 const int defaultCacheCapacity = 256 * 1024;
 
+const int KMaxMissedDrawsAllowed = 5;//Max missed repaint allowed before paint happens
+
 // LOCAL FUNCTION PROTOTYPES
 TInt doRepaintCb( TAny* ptr );
 TInt doFepCb( TAny* ptr );
@@ -203,6 +205,7 @@
 , m_waitTimer(0)
 , m_pinchZoomHandler(NULL)
 , m_isPinchZoom(false)
+, m_drawsMissed(0)
 {
 }
 
@@ -630,7 +633,8 @@
         layoutPending = false;
     }
 
-    if ( !layoutPending || !isLoading()) {
+    if ( !layoutPending || (m_drawsMissed >= KMaxMissedDrawsAllowed  && !isLoading())) {
+        m_drawsMissed = 0;
         bool needsDraw = false;
         m_repaints.Tidy();
         for (int i=0; i<m_repaints.Count(); ++i) {
@@ -653,6 +657,9 @@
         // dont do next async repaint until KRepaintDelay
         m_repaints.Clear();
     }
+    else{
+        m_drawsMissed++;
+    }
     m_repainttimer->Cancel();
     // tot:fixme TBool complete = iWebkitControl->IsProgressComplete(); && CImageRendererFactory::Instance()->DecodeCount()==0;
 
@@ -2996,6 +3003,11 @@
     }
     m_currentZoomLevel = zoomLevel;
     DrawNow();
+    PluginSkin* pluginskin = mainFrame()->focusedPlugin();
+    if(pluginskin)
+     {
+        pluginskin->deActivate();
+    }
 }
 
 //-------------------------------------------------------------------------------