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