Blocking touch event when flick is in progress
authorBhavya Kumili <bhavya.k@samsung.com>
Wed, 3 Jul 2013 11:01:51 +0000 (16:31 +0530)
committerBhavya Kumili <bhavya.k@samsung.com>
Wed, 3 Jul 2013 11:38:52 +0000 (17:08 +0530)
Change-Id: Iabc13805c6b7cbaab49fde04e67a90ce021b9fe7

src/ui/controls/FUiCtrl_DateTimeBarPresenter.cpp
src/ui/inc/FUiCtrl_DateTimeBarPresenter.h

index db87e93..ed29811 100644 (file)
@@ -65,6 +65,7 @@ _DateTimeBarPresenter::_DateTimeBarPresenter(_DateTimeBar* pDateTimeBar)
        , __isFocused(false)
        , __focusedIndex(-1)
        , __focusBounds(FloatRectangle())
+       , __isFlickCanceled(false)
 {
 }
 
@@ -1173,6 +1174,7 @@ _DateTimeBarPresenter::OnTouchPressed(const _Control& source, const _TouchInfo&
        if (__isFlickInProgress)
        {
                ResetFlickAnimationTimer();
+               __isFlickCanceled = true;
        }
 
        __touchMoveHandled = false;
@@ -1221,7 +1223,7 @@ _DateTimeBarPresenter::OnTouchReleased(const _Control& source, const _TouchInfo&
        int index = GetItemIndexFromPosition(touchinfo.GetCurrentPosition());
        bool isEventFire = true;
 
-       if (index != -1 && __isTouchMoved == false && __isFlickInProgress == false)
+       if (index != -1 && !__isTouchMoved && !__isFlickInProgress && !__isFlickCanceled)
        {
                PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, __pDateTimeBar);
                SetItemStatus(index, DATETIMEBAR_ITEM_STATUS_SELECTED);
@@ -1230,6 +1232,7 @@ _DateTimeBarPresenter::OnTouchReleased(const _Control& source, const _TouchInfo&
        else
        {
                isEventFire = false;
+               __isFlickCanceled = false;
        }
 
        __isTouchMoved = false;
@@ -1599,6 +1602,7 @@ result
 _DateTimeBarPresenter::StartFlickAnimationTimer(void)
 {
        result r = E_SUCCESS;
+       __isFlickInProgress = true;
 
        if (__pFlickAnimationTimer == null)
        {
index 79dea00..90da69f 100644 (file)
@@ -171,6 +171,7 @@ private:
        Tizen::Graphics::FloatRectangle __focusBounds;
        int __focusedValue;
        static const int UPDATE_ITEM_COUNT = 6;
+       bool __isFlickCanceled;
 
 }; // _DateTimeBarPresenter