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();