src/screensaverctrlplugin.cpp
changeset 1 35d9bdabf175
parent 0 040fcad49f44
child 9 b3594157d381
--- a/src/screensaverctrlplugin.cpp	Thu Dec 17 08:46:04 2009 +0200
+++ b/src/screensaverctrlplugin.cpp	Thu Jan 07 12:46:37 2010 +0200
@@ -493,11 +493,21 @@
         {
         err = iPlugin->Draw( gc );
         }
-	
-	if( err != KErrNone )
-		{
-		iPluginFlag.Set( EPluginFlagSuspend );
-		}
+    //Notice:add this code to shield the issue ELWG-7SF3R3.
+    //Prevent screensaver plugin from being called unexpected draw function,
+    //which would cause chosen images are not displayed.
+    //Check the err code return by iPlugin->Draw:
+    //If draw action is correct and iPluginFlag has already been set EPluginFlagSuspend,
+    //then clear this EPluginFlagSuspend
+    if ( KErrNone == err && iPluginFlag.IsSet( EPluginFlagSuspend ) )
+        {
+        iPluginFlag.Clear( EPluginFlagSuspend );
+        }
+
+    if( err != KErrNone )
+        {
+        iPluginFlag.Set( EPluginFlagSuspend );
+        }
     }
 
 // -----------------------------------------------------------------------------