P130705-0389 : check OnEvasTouchPressed/OnEvasTouchReleased pair
authorminkyu kim <imetjade.kim@samsung.com>
Wed, 10 Jul 2013 10:45:05 +0000 (19:45 +0900)
committerminkyu kim <imetjade.kim@samsung.com>
Wed, 10 Jul 2013 10:45:05 +0000 (19:45 +0900)
Change-Id: I0abc21c7bfabdc364360ef200ea00d4709744366

src/ui/FUi_EflUiEventManager.cpp

index 748b260..5b908b9 100644 (file)
@@ -88,6 +88,7 @@ Ecore_X_Atom keyboardExist = 0;
 const wchar_t* KEYBOARD_INSERTED_EVENT = L"KEYBOARD_INSERTED";
 const int DEVICE_COUNT = 999;
 bool touchPressed[DEVICE_COUNT] = {false,};
+bool evasTouchPressed = false;
 const int KEY_COUNT = 300;
 bool keyPressed[KEY_COUNT] = {false,};
 
@@ -1594,6 +1595,22 @@ OnEvasTouchPressed(void* pData, Evas* pEvas, Evas_Object* pEvasObject, void* pEv
        _Control* pControl = static_cast<_Control*>(pData);
        SysTryReturnVoidResult(NID_UI, pControl, E_INVALID_ARG, "[E_INVALID_ARG] The argument is invalid.");
 
+       if (evasTouchPressed == true)
+       {
+               _TouchManager* pTouchManager = _TouchManager::GetInstance();
+               if (pTouchManager)
+               {
+                       pTouchManager->SetTouchCanceled(null);
+                       SysLog(NID_UI, "pWindow is null, CancelTouch");
+
+                       evasTouchPressed = false;
+                       pTouchManager->ResetTouchInfo();
+                       SysLog(NID_UI, "pWindow is null, ResetTouchInfo");
+               }
+       }
+
+       evasTouchPressed = true;
+
        SysSecureLog(NID_UI, "OnEvasTouchPressed - x(%d), y(%d)", pEv->canvas.x, pEv->canvas.y);
        _TouchEvent event(0, _TOUCH_PRESSED, pEv->canvas.x, pEv->canvas.y, pEv->timestamp, pControl);
 
@@ -1618,6 +1635,8 @@ OnEvasTouchReleased(void* pData, Evas* pEvas, Evas_Object* pEvasObject, void* pE
        _Control* pControl = static_cast<_Control*>(pData);
        SysTryReturnVoidResult(NID_UI, pControl, E_INVALID_ARG, "[E_INVALID_ARG] The argument is invalid.");
 
+       evasTouchPressed = false;
+
        SysSecureLog(NID_UI, "OnEvasTouchReleased - x(%d), y(%d)", pEv->canvas.x, pEv->canvas.y);
        _TouchEvent event(0, _TOUCH_RELEASED, pEv->canvas.x, pEv->canvas.y, pEv->timestamp, pControl);