taskswitcher/taskswitcherui/taskswitcherapp/src/tsphysicsengine.cpp
branchRCL_3
changeset 16 9674c1a575e9
parent 15 ff572dfe6d86
child 54 1b758917cafc
--- 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);
         }
     }