Revision: 201015 RCL_3 PDK_3.0.i
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 27 Apr 2010 16:38:49 +0300
branchRCL_3
changeset 15 0bfd55b8504e
parent 13 4784a3bc2236
child 17 d8eca2b0590d
Revision: 201015 Kit: 201017
inc/screensaveractivitymanager.h
src/screensaveractivitymanager.cpp
src/screensaverengine.cpp
src/screensavershareddatamonitor.cpp
--- 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);
--- 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 );
+    }
--- 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 );
--- 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;
     }