--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsphysicsengine.cpp Fri Mar 12 15:41:49 2010 +0200
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsphysicsengine.cpp Mon Mar 15 12:39:47 2010 +0200
@@ -86,16 +86,6 @@
return iPhysics->OngoingPhysicsAction() != CAknPhysics::EAknPhysicsActionNone;
}
-
-// -----------------------------------------------------------------------------
-// CTsPhysicsEngine::IsDragging
-// -----------------------------------------------------------------------------
-//
-TBool CTsPhysicsEngine::IsDragging() const
- {
- return iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionDragging;
- }
-
// -----------------------------------------------------------------------------
// CTsPhysicsEngine::HandleDragEvent
// -----------------------------------------------------------------------------
@@ -107,16 +97,25 @@
{
iPhysics->StopPhysics();
iStartTime.HomeTime();
+ iStartPosition = aEvent.CurrentPosition();
+ iDragDirection = 0;
}
else if (AknTouchGestureFw::EAknTouchGestureFwOn == aEvent.State())
{
+ TInt direction =
+ aEvent.CurrentPosition().iX > aEvent.PreviousPosition().iX ? -1 : 1;
TPoint deltaPoint(aEvent.PreviousPosition() - aEvent.CurrentPosition());
iPhysics->RegisterPanningPosition(deltaPoint);
- iStartTime.HomeTime();
+ if (iDragDirection && iDragDirection != direction)
+ {
+ iStartTime.HomeTime();
+ iStartPosition = aEvent.PreviousPosition();
+ }
+ iDragDirection = direction;
}
else //AknTouchGestureFw::EAknTouchGestureFwStop
{
- TPoint drag(aEvent.PreviousPosition() - aEvent.CurrentPosition());
+ TPoint drag(iStartPosition - aEvent.CurrentPosition());
iPhysics->StartPhysics(drag, iStartTime);
}
}