N_SE-42374 : check validity of gesture before handling OnTimerExpired
authorminkyu kim <imetjade.kim@samsung.com>
Mon, 24 Jun 2013 07:07:29 +0000 (16:07 +0900)
committerminkyu kim <imetjade.kim@samsung.com>
Mon, 24 Jun 2013 07:07:29 +0000 (16:07 +0900)
Change-Id: Ie358394a78adb0b11f974e75217a496983510890

src/ui/FUi_TouchGestureTimerManager.cpp

index 6a44708..812603e 100644 (file)
@@ -57,6 +57,38 @@ public:
 
                if (pGestureDetector)
                {
+                       _Control* pControl = pGestureDetector->GetControl();
+                       SysTryReturnVoidResult(NID_UI, pControl, E_SYSTEM, "[E_SYSTEM] System error occurred.");
+
+                       Tizen::Base::Collection::IListT<_TouchGestureDetector*>* pGestureList = pControl->GetGestureDetectorList();
+                       if (!pGestureList || (pGestureList && (pGestureList->GetCount() <= 0)))
+                       {
+                               return;
+                       }
+
+                       IEnumeratorT<_TouchGestureDetector*>* pEnumerator = pGestureList->GetEnumeratorN();
+                       SysTryReturnVoidResult(NID_UI, pEnumerator, E_SYSTEM, "[E_SYSTEM] System error occurred.");
+
+                       bool gestureExist = false;
+
+                       while (pEnumerator->MoveNext() == E_SUCCESS)
+                       {
+                               _TouchGestureDetector* pTempGestureDetector = null;
+                               pEnumerator->GetCurrent(pTempGestureDetector);
+
+                               if (pGestureDetector == pTempGestureDetector)
+                               {
+                                       gestureExist = true;
+                               }
+                       }
+
+                       delete pEnumerator;
+
+                       if (gestureExist == false)
+                       {
+                               return;
+                       }
+
                        switch(pGestureDetector->GetDetectorType())
                        {
                        case _TOUCH_GESTURE_DETECTOR_TYPE_TAP: