diff -r d05a55b217df -r 79311d856354 taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/src/previewprovidercrp.cpp --- a/taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/src/previewprovidercrp.cpp Wed Apr 14 15:47:59 2010 +0300 +++ b/taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/src/previewprovidercrp.cpp Tue Apr 27 16:26:12 2010 +0300 @@ -53,7 +53,8 @@ // -------------------------------------------------------------------------- // void CPreviewProviderCRP::ConstructL() - { + { + iLastWgIdRedraw = ETrue; } // -------------------------------------------------------------------------- @@ -147,7 +148,8 @@ BaseConstructL( aEnv, aId, aOwner ); aEnv.RegisterEventHandler( this, this, TWservCrEvent::EWindowGroupChanged | - TWservCrEvent::EDeviceOrientationChanged ); + TWservCrEvent::EDeviceOrientationChanged | + TWservCrEvent::EScreenDrawing ); iScreenChangedTime = 0; TSLOG_OUT(); @@ -174,7 +176,10 @@ TInt err = currTime.SecondsFrom( iScreenChangedTime, secondsFrom ); if ( err != KErrNone || secondsFrom.Int() > KMinTimeForOrientationSwitch ) { - TRAP_IGNORE( ScreenshotL() ); + if ( iLastWgIdRedraw ) + { + TRAP_IGNORE( ScreenshotL() ); + } } else { @@ -186,11 +191,19 @@ iPrevReg = 0; } iPrevId = wgId; + iLastWgIdRedraw = EFalse; } else if ( aEvent.Type() == TWservCrEvent::EDeviceOrientationChanged ) { iScreenChangedTime.HomeTime(); - TRAP_IGNORE( ScreenshotL() ); + if ( iLastWgIdRedraw ) + { + TRAP_IGNORE( ScreenshotL() ); + } + } + else if ( aEvent.Type() == TWservCrEvent::EScreenDrawing ) + { + iLastWgIdRedraw = ETrue; } TSLOG_OUT();