Cancelled signal is triggered to reset status when gesture is detached.
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / controls / scrollable / scroll-view / scroll-view-impl.cpp
index 82b647f..395a3cb 100644 (file)
@@ -574,7 +574,7 @@ void ScrollView::OnInitialize()
 
   mGestureStackDepth = 0;
 
-  EnableGestureDetection( Gesture::Type( Gesture::Pan | Gesture::Pinch ) );
+  EnableGestureDetection( Gesture::Type( Gesture::Pan ) );
 
   // For pan, default to only 1 touch required, ignoring touches outside this range.
   SetTouchesRequiredForPanning(1, 1, false);
@@ -915,26 +915,26 @@ void ScrollView::SetScrollSensitive(bool sensitive)
 {
   Actor self = Self();
   PanGestureDetector panGesture( GetPanGestureDetector() );
-  PinchGestureDetector pinchGesture( GetPinchGestureDetector() );
 
   if((!mSensitive) && (sensitive))
   {
     mSensitive = sensitive;
     panGesture.Attach(self);
-    pinchGesture.Attach(self);
   }
   else if((mSensitive) && (!sensitive))
   {
-    mSensitive = sensitive;
+    // while the scroll view is panning, the state needs to be reset.
+    bool isPanning = self.GetProperty<bool>( mPropertyPanning );
+    if ( isPanning )
+    {
+      PanGesture cancelGesture( Gesture::Cancelled );
+      OnPan( cancelGesture );
+    }
+
     panGesture.Detach(self);
-    pinchGesture.Detach(self);
+    mSensitive = sensitive;
 
     mGestureStackDepth = 0;
-    self.SetProperty(mPropertyPanning, false);
-
-    // Remove X & Y position constraints as they are not required when we are not panning.
-    self.RemoveConstraint(mScrollMainInternalXConstraint);
-    self.RemoveConstraint(mScrollMainInternalYConstraint);
   }
 }
 
@@ -2177,11 +2177,6 @@ void ScrollView::OnPan(PanGesture gesture)
   OnGestureEx(gesture.state);
 }
 
-void ScrollView::OnPinch(PinchGesture gesture)
-{
-  // TODO: Reintroduce the pinch functionality for scaling.
-}
-
 void ScrollView::OnGestureEx(Gesture::State state)
 {
   // call necessary signals for application developer