}
void
-_TouchManager::SetTouchCanceled(bool canceled, bool onlyTouchEvent)
+_TouchManager::SetTouchCancelOnGesture(bool onlyTouchEvent)
{
__touchCanceledOnGestureSuccess = onlyTouchEvent;
+}
- if (canceled)
+void
+_TouchManager::SetTouchCanceled(_Control* pControl)
+{
+ if (GetTouchControlSource() && GetTouchControlSource()->IsAttachedToMainTree())
{
- if (GetTouchControlSource() && GetTouchControlSource()->IsAttachedToMainTree())
+ if (pControl != null && pControl != GetTouchControlSource())
{
- FloatPoint currentPoint(0, 0);
- _TouchInfo touchInfo;
+ return;
+ }
- if (GetTouchControlSource()->IsMultiTouchEnabled())
- {
- currentPoint.x = GetScreenPoint(GetCurrentPointId()).x;
- currentPoint.y = GetScreenPoint(GetCurrentPointId()).y;
+ FloatPoint currentPoint(0, 0);
+ _TouchInfo touchInfo;
- _TouchInfo multiTouchInfo(GetCurrentPointId(), _TOUCH_CANCELED, currentPoint, false, 0);
- touchInfo = multiTouchInfo;
- }
- else
- {
- currentPoint.x = GetScreenPoint(SINGLE_POINT_ID).x;
- currentPoint.y = GetScreenPoint(SINGLE_POINT_ID).y;
+ if (GetTouchControlSource()->IsMultiTouchEnabled())
+ {
+ currentPoint.x = GetScreenPoint(GetCurrentPointId()).x;
+ currentPoint.y = GetScreenPoint(GetCurrentPointId()).y;
- _TouchInfo singleTouchInfo(SINGLE_POINT_ID, _TOUCH_CANCELED, currentPoint, false, 0);
- touchInfo = singleTouchInfo;
- }
+ _TouchInfo multiTouchInfo(GetCurrentPointId(), _TOUCH_CANCELED, currentPoint, false, 0);
+ touchInfo = multiTouchInfo;
+ }
+ else
+ {
+ currentPoint.x = GetScreenPoint(SINGLE_POINT_ID).x;
+ currentPoint.y = GetScreenPoint(SINGLE_POINT_ID).y;
- _UiTouchEvent event(GetTouchControlSource()->GetHandle(), touchInfo);
+ _TouchInfo singleTouchInfo(SINGLE_POINT_ID, _TOUCH_CANCELED, currentPoint, false, 0);
+ touchInfo = singleTouchInfo;
+ }
+
+ _UiTouchEvent event(GetTouchControlSource()->GetHandle(), touchInfo);
- _UiEventManager* pEventManager = _UiEventManager::GetInstance();
- SysTryReturnVoidResult(NID_UI, pEventManager, E_SYSTEM, "[E_SYSTEM] _UiEventManager does not exist.");
+ _UiEventManager* pEventManager = _UiEventManager::GetInstance();
+ SysTryReturnVoidResult(NID_UI, pEventManager, E_SYSTEM, "[E_SYSTEM] _UiEventManager does not exist.");
- pEventManager->SendEvent(event);
+ pEventManager->SendEvent(event);
- _TouchManager* pTouchManager = _TouchManager::GetInstance();
- SysTryReturnVoidResult(NID_UI, pTouchManager, E_SYSTEM, "[E_SYSTEM] _TouchManager does not exist.");
+ _TouchManager* pTouchManager = _TouchManager::GetInstance();
+ SysTryReturnVoidResult(NID_UI, pTouchManager, E_SYSTEM, "[E_SYSTEM] _TouchManager does not exist.");
- IListT<_FingerInfo*>* pFingerInfoList = pTouchManager->GetMultiFingerInfoListN();
- SysTryReturnVoidResult(NID_UI, pFingerInfoList, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
+ IListT<_FingerInfo*>* pFingerInfoList = pTouchManager->GetMultiFingerInfoListN();
+ SysTryReturnVoidResult(NID_UI, pFingerInfoList, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
- int count = pFingerInfoList->GetCount();
+ int count = pFingerInfoList->GetCount();
- for (int i = 0; i < count; i++)
+ for (int i = 0; i < count; i++)
+ {
+ _FingerInfo* pFingerInfo = null;
+ pFingerInfoList->GetAt(i, pFingerInfo);
+ if (pFingerInfo == null)
{
- _FingerInfo* pFingerInfo = null;
- pFingerInfoList->GetAt(i, pFingerInfo);
- if (pFingerInfo == null)
- {
- continue;
- }
+ continue;
+ }
- if (pFingerInfo->GetPointId() == touchInfo.GetPointId())
- {
- pFingerInfo->SetPointId(INVALID_POINT_ID);
- break;
- }
+ if (pFingerInfo->GetPointId() == touchInfo.GetPointId())
+ {
+ pFingerInfo->SetPointId(INVALID_POINT_ID);
+ break;
}
- delete pFingerInfoList;
}
- SetLastResult(E_SUCCESS);
- _ResourceManager::GetInstance()->ResetFeedback();
+ delete pFingerInfoList;
}
+ SetLastResult(E_SUCCESS);
+ _ResourceManager::GetInstance()->ResetFeedback();
}
void