Fix for N_SE-37023
authorSaravana Balaji <saravana.bs@samsung.com>
Tue, 30 Apr 2013 12:19:15 +0000 (17:49 +0530)
committerSaravana Balaji <saravana.bs@samsung.com>
Tue, 30 Apr 2013 14:27:41 +0000 (19:57 +0530)
Change-Id: Ic3e0019b5097e8dea78d4639e2d5614cc9122275
Signed-off-by: Saravana Balaji <saravana.bs@samsung.com>
src/ui/controls/FUiCtrl_TokenEditPresenter.cpp
src/ui/inc/FUiCtrl_TokenEditPresenter.h

index d3c6582..1a8ae36 100644 (file)
@@ -301,6 +301,7 @@ _TokenEditPresenter::_TokenEditPresenter(void)
        , __isTitleSliding(false)
        , __touchPressInfo(FloatPoint(-1.0f, -1.0f))
        , __editContentFontSize(0.0f)
+       , __trackTokenIndex(-1)
 {
 }
 
@@ -1175,6 +1176,9 @@ _TokenEditPresenter::RemoveTokenAt(int index, bool isClearText)
        else if (index == __pressedTokenIndex)
        {
                __pressedTokenIndex = -1;
+               StopCursorTimer();
+               SetCursorDisabled(false);
+               StartCursorTimer();
        }
 
        return r;
@@ -2046,6 +2050,13 @@ result
 _TokenEditPresenter::ProcessTokeningByTouchEvent(const _Control& source, const _TouchInfo& touchinfo)
 {
        int tokenIndex = GetTokenIndexFromCoordinate(_CoordinateSystemUtils::ConvertToInteger(touchinfo.GetCurrentPosition()));
+
+       //Reset "longPressed" when Touch released on a different token after long gesture on a token
+       if (__trackTokenIndex != tokenIndex)
+       {
+               __isLongPressed = false;
+       }
+
        int prevPressedTokenIndex = __pressedTokenIndex;
        int prevEditedTokenIndex = __edittingTokenIndex;
 
@@ -2771,6 +2782,7 @@ bool
 _TokenEditPresenter::OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo)
 {
        int tokenIndex = GetTokenIndexFromCoordinate(_CoordinateSystemUtils::ConvertToInteger(touchinfo.GetCurrentPosition()));
+       __trackTokenIndex = tokenIndex;
 
        _TouchInfo TouchInfo(touchinfo);
        if (tokenIndex != -1)
@@ -2843,6 +2855,7 @@ _TokenEditPresenter::OnTouchReleased(const _Control& source, const _TouchInfo& t
        }
 
        __isTouchMoveInProgress = false;
+       __trackTokenIndex = -1;
 
        return false;
 }
@@ -3201,12 +3214,6 @@ _TokenEditPresenter::OnSurroundingTextDeleted(int offset, int charCount)
        if (__pressedTokenIndex >= 0 && __edittingTokenIndex < 0 && !__isEditingToken)
        {
                RemoveTokenAt(__pressedTokenIndex);
-               if (__pressedTokenIndex < 0)
-               {
-                       StopCursorTimer();
-                       SetCursorDisabled(false);
-                       StartCursorTimer();
-               }
                __pTokenEdit->Invalidate();
                return;
        }
@@ -3349,6 +3356,12 @@ _TokenEditPresenter::OnLongPressGestureDetected(void)
                return true;
        }
 
+       //Discard all long press that is detected after Touch press on a  token
+       if (__trackTokenIndex >= 0)
+       {
+               return true;
+       }
+
        __isLongPressed = true;
 
        //Uncomment below to Block Copy & Paste functionality in Token Edit mode
index b8a85ea..01f08d8 100644 (file)
@@ -260,6 +260,8 @@ private:
 
        int __editContentFontSize;
 
+       int __trackTokenIndex;
+
 };     // _TokenEditPresenter
 
 }}} // Tizen::Ui::Controls