X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=base%2Fdali-toolkit%2Finternal%2Fcontrols%2Fscrollable%2Fscroll-view%2Fscroll-view-impl.cpp;h=d0f05aedd753ccd94c2be3d756499bcab8ee5eaf;hp=277936926ef949b850113bf36192e3095f17605f;hb=73a843c989185d86282edb116aeac40a5f3eb865;hpb=63106d0a9407c87ff624f4b93e2627a0c7cc1e2a diff --git a/base/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.cpp b/base/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.cpp index 2779369..d0f05ae 100644 --- a/base/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.cpp +++ b/base/dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.cpp @@ -2223,7 +2223,9 @@ void ScrollView::OnScrollAnimationFinished( Animation& source ) scrollingFinished = true; } mInternalXAnimation.Reset(); - SnapInternalXTo(mScrollPostPosition.x); + + // erase current state flags + mScrollStateFlags &= ~SCROLL_X_STATE_MASK; } if( source == mInternalYAnimation ) @@ -2233,7 +2235,9 @@ void ScrollView::OnScrollAnimationFinished( Animation& source ) scrollingFinished = true; } mInternalYAnimation.Reset(); - SnapInternalYTo(mScrollPostPosition.y); + + // erase current state flags + mScrollStateFlags &= ~SCROLL_Y_STATE_MASK; } if(scrollingFinished) @@ -2242,67 +2246,6 @@ void ScrollView::OnScrollAnimationFinished( Animation& source ) } } -void ScrollView::OnSnapInternalPositionFinished( Animation& source ) -{ - Actor self = Self(); - UpdateLocalScrollProperties(); - if( source == mInternalXAnimation ) - { - // clear internal x animation flags - mScrollStateFlags &= ~SCROLL_X_STATE_MASK; - mInternalXAnimation.Reset(); - WrapPosition(mScrollPrePosition); - } - if( source == mInternalYAnimation ) - { - mScrollStateFlags &= ~SCROLL_Y_STATE_MASK; - mInternalYAnimation.Reset(); - WrapPosition(mScrollPrePosition); - } -} - -void ScrollView::SnapInternalXTo(float position) -{ - Actor self = Self(); - - StopAnimation(mInternalXAnimation); - - // erase current state flags - mScrollStateFlags &= ~SCROLL_X_STATE_MASK; - - // if internal x not equal to inputed parameter, animate it - float current = self.GetProperty(mPropertyPrePosition).x; - float duration = fabsf(position - current); - mInternalXAnimation = Animation::New(duration); - mInternalXAnimation.FinishedSignal().Connect(this, &ScrollView::OnSnapInternalPositionFinished); - mInternalXAnimation.AnimateTo(Property(self, mPropertyPrePosition, 0), position); - mInternalXAnimation.Play(); - - // add internal animation state flag - mScrollStateFlags |= SnappingInternalX; -} - -void ScrollView::SnapInternalYTo(float position) -{ - Actor self = Self(); - - StopAnimation(mInternalYAnimation); - - // erase current state flags - mScrollStateFlags &= ~SCROLL_Y_STATE_MASK; - - // if internal y not equal to inputed parameter, animate it - float current = self.GetProperty(mPropertyPrePosition).y; - float duration = fabsf(position - current); - mInternalYAnimation = Animation::New(duration); - mInternalYAnimation.FinishedSignal().Connect(this, &ScrollView::OnSnapInternalPositionFinished); - mInternalYAnimation.AnimateTo(Property(self, mPropertyPrePosition, 1), position); - mInternalYAnimation.Play(); - - // add internal animation state flag - mScrollStateFlags |= SnappingInternalY; -} - void ScrollView::GestureStarted() { // we handle the first gesture. @@ -2477,14 +2420,6 @@ void ScrollView::FinishTransform() Self().SetProperty(mPropertyScrolling, false); Vector3 currentScrollPosition = GetCurrentScrollPosition(); mScrollCompletedSignalV2.Emit( currentScrollPosition ); - if( fabs(mScrollPrePosition.x - mScrollTargetPosition.x) > Math::MACHINE_EPSILON_10 ) - { - SnapInternalXTo(mScrollTargetPosition.x); - } - if( fabs(mScrollPrePosition.y - mScrollTargetPosition.y) > Math::MACHINE_EPSILON_10 ) - { - SnapInternalYTo(mScrollTargetPosition.y); - } } }