idlehomescreen/xmluirendering/uiengine/src/xnviewcontroladapter.cpp
branchRCL_3
changeset 26 1b758917cafc
parent 25 137ebc85284b
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewcontroladapter.cpp	Tue May 25 12:29:32 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewcontroladapter.cpp	Wed Jun 09 09:29:04 2010 +0300
@@ -41,11 +41,17 @@
     const TPointerEvent& aEvent ) 
     {       
     if ( aControl )
-        {                              
+        {
         CCoeControl* grabber( aControl->GrabbingComponent() );
         
         if ( grabber )
-            {                        
+            {
+            // cancel longtap detector before reset grabbing.
+            CAknLongTapDetector* detector = aControl->LongTapDetector();
+            if ( detector && detector->IsActive() )
+                {
+                detector->Cancel();
+                }
             grabber->IgnoreEventsUntilNextPointerUp();
             
             aControl->CCoeControl::HandlePointerEventL( aEvent );
@@ -53,7 +59,7 @@
             CXnControlAdapter* adapter = 
                 dynamic_cast< CXnControlAdapter* >( grabber );
             
-            ResetGrabbingL( adapter, aEvent );            
+            ResetGrabbingL( adapter, aEvent );
             }        
         }    
     }
@@ -182,13 +188,16 @@
 void CXnViewControlAdapter::HandlePointerEventL( 
     const TPointerEvent& aPointerEvent )
     {    
-    iAppUi.UiEngine().DisableRenderUiLC();
+    if ( iForegroundStatus != EBackground )
+        {
+        iAppUi.UiEngine().DisableRenderUiLC();
+            
+        CXnControlAdapter::HandlePointerEventL( aPointerEvent );
         
-    CXnControlAdapter::HandlePointerEventL( aPointerEvent );
-    
-    iAppUi.UiEngine().RenderUIL();
-    
-    CleanupStack::PopAndDestroy();    
+        iAppUi.UiEngine().RenderUIL();
+        
+        CleanupStack::PopAndDestroy();    
+        }
     }
 
 // -----------------------------------------------------------------------------
@@ -215,6 +224,7 @@
 //
 void CXnViewControlAdapter::NotifyForegroundChanged( TForegroundStatus aStatus )
     {
+    iForegroundStatus = aStatus;
     if ( aStatus == EBackground || aStatus == EPartialForeground )
         {
         ResetGrabbing();