diff -r 040fcad49f44 -r 35d9bdabf175 src/screensaverctrlplugin.cpp --- 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 ); + } } // -----------------------------------------------------------------------------