N_SE-47263 : reset touch cancel when indicator touch released/N_SE-51832 : fix checki...
authorMinkyu Kim <imetjade.kim@samsung.com>
Fri, 27 Sep 2013 06:09:46 +0000 (15:09 +0900)
committerMinkyu Kim <imetjade.kim@samsung.com>
Fri, 27 Sep 2013 06:09:46 +0000 (15:09 +0900)
Change-Id: I3b86ce0ef79442d133954a5181e59043f338aea2

src/ui/FUi_EflUiEventManager.cpp
src/ui/controls/FUiCtrl_Indicator.cpp

index 963ab91..ff1e2d1 100644 (file)
@@ -91,7 +91,6 @@ int __touchTailCount = 0;
 const int KEY_COUNT = 300;
 const int DEVICE_COUNT = 999;
 const wchar_t* KEYBOARD_INSERTED_EVENT = L"KEYBOARD_INSERTED";
-bool __evasTouchPressed = false;
 bool __keyPressed[KEY_COUNT] = {false,};
 bool __touchPressed[DEVICE_COUNT] = {false,};
 Ecore_X_Atom __keyboardExist = 0;
@@ -1797,7 +1796,7 @@ OnIpcClientData(void *pData, int type __UNUSED__, void *pEvent)
                        _IpcDataEvMouseDown *pIpc = static_cast<_IpcDataEvMouseDown*>(pEv->data);
                        SysTryReturnResult(NID_UI, pIpc, ECORE_CALLBACK_PASS_ON, "[E_INVALID_ARG] The argument is invalid.");
 
-                       if (__evasTouchPressed == true)
+                       if (__touchPressed[0] == true)
                        {
                                _TouchManager* pTouchManager = _TouchManager::GetInstance();
                                if (pTouchManager)
@@ -1805,13 +1804,13 @@ OnIpcClientData(void *pData, int type __UNUSED__, void *pEvent)
                                        pTouchManager->SetTouchCanceled(null);
                                        SysLog(NID_UI, "pWindow is null, CancelTouch");
 
-                                       __evasTouchPressed = false;
+                                       __touchPressed[0] = false;
                                        pTouchManager->ResetTouchInfo();
                                        SysLog(NID_UI, "pWindow is null, ResetTouchInfo");
                                }
                        }
 
-                       __evasTouchPressed = true;
+                       __touchPressed[0] = true;
 
                        SysSecureLog(NID_UI, "OnEvasTouchPressed - x(%d), y(%d)", pointX, pointY);
                        _TouchEvent event(0, _TOUCH_PRESSED, pointX, pointY, pIpc->timestamp, pControl);
@@ -1835,7 +1834,7 @@ OnIpcClientData(void *pData, int type __UNUSED__, void *pEvent)
                        _IpcDataEvMouseUp *pIpc = static_cast<_IpcDataEvMouseUp*>(pEv->data);
                        SysTryReturnResult(NID_UI, pIpc, ECORE_CALLBACK_PASS_ON, "[E_INVALID_ARG] The argument is invalid.");
 
-                       __evasTouchPressed = false;
+                       __touchPressed[0] = false;
 
                        SysSecureLog(NID_UI, "OnEvasTouchReleased - x(%d), y(%d)", pointX, pointY);
                        _TouchEvent event(0, _TOUCH_RELEASED, pointX, pointY, pIpc->timestamp, pControl);
@@ -1856,7 +1855,7 @@ OnIpcClientData(void *pData, int type __UNUSED__, void *pEvent)
        case OP_EV_MOUSE_MOVE:
                if (pEv->size >= static_cast<int>(sizeof(_IpcDataEvMouseMove)))
                {
-                       if (__evasTouchPressed == false)
+                       if (__touchPressed[0] == false)
                        {
                                return ECORE_CALLBACK_PASS_ON;
                        }
index 3b59a9e..4ded06f 100644 (file)
@@ -975,6 +975,15 @@ _Indicator::OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo)
 
                if (pTouchManager->IsListenerOnly(touchinfo.GetPointId()) == true)
                {
+                       _TouchManager* pTouchManager = _TouchManager::GetInstance();
+                       if (pTouchManager)
+                       {
+                               if(pTouchManager->GetTouchControlSource() == &source)
+                               {
+                                       SysLog(NID_UI, "VisibleState changed false, Call SetTouchCanceled");
+                                       pTouchManager->SetTouchCanceled(null);
+                               }
+                       }
                        return true;
                }
                else