# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1272375529 -10800 # Node ID 0bfd55b8504ed37fe72f1cfe42d7216f1387093c # Parent 4784a3bc2236dd4b8040e29b903a0ab839967210 Revision: 201015 Kit: 201017 diff -r 4784a3bc2236 -r 0bfd55b8504e inc/screensaveractivitymanager.h --- a/inc/screensaveractivitymanager.h Wed Apr 14 15:58:13 2010 +0300 +++ b/inc/screensaveractivitymanager.h Tue Apr 27 16:38:49 2010 +0300 @@ -30,6 +30,7 @@ TCallBack aInactiveCallback, TCallBack aActiveCallback); void SetInactivityTimeout(TTimeIntervalSeconds aInterval); + TBool IsMonitoringForActivity(); private: void RunL(); CScreensaverActivityManager(TInt aPriority); diff -r 4784a3bc2236 -r 0bfd55b8504e src/screensaveractivitymanager.cpp --- a/src/screensaveractivitymanager.cpp Wed Apr 14 15:58:13 2010 +0300 +++ b/src/screensaveractivitymanager.cpp Tue Apr 27 16:38:49 2010 +0300 @@ -124,3 +124,8 @@ } } } + +TBool CScreensaverActivityManager::IsMonitoringForActivity() + { + return ( iState == EStMonForActivity ); + } diff -r 4784a3bc2236 -r 0bfd55b8504e src/screensaverengine.cpp --- a/src/screensaverengine.cpp Wed Apr 14 15:58:13 2010 +0300 +++ b/src/screensaverengine.cpp Tue Apr 27 16:38:49 2010 +0300 @@ -812,7 +812,17 @@ // Start the screensaver, but set the ignore flag in case keylock // was activated using the side switch. The switch will generate // activity that must be ignored. - StartScreenSaver(); + if ( iActivityManagerScreensaverShort->IsMonitoringForActivity() ) + { + // Inactive state, start immediately + StartScreenSaver(); + } + else + { + // Active state, go to inactive and start. + iActivityManagerScreensaverShort->SetInactivityTimeout(0); + } + iIgnoreNextActivity = ETrue; iIgnoreActivityResetTimer = CPeriodic::New( EPriorityLow ); diff -r 4784a3bc2236 -r 0bfd55b8504e src/screensavershareddatamonitor.cpp --- a/src/screensavershareddatamonitor.cpp Wed Apr 14 15:58:13 2010 +0300 +++ b/src/screensavershareddatamonitor.cpp Tue Apr 27 16:38:49 2010 +0300 @@ -255,7 +255,7 @@ // Prevent fullscreen transition from screensaver on incoming call CAknTransitionUtils::SetData( KScreensaverCallStateChange, (TAny*)1 ); #endif - + User::ResetInactivityTime(); STATIC_CAST(CScreensaverSharedDataMonitor*, aPtr)->Model().StopScreenSaver(); return KErrNone; }