Raise touch event when two finger gesture in screen reader mode
authorSangYong Park <sy302.park@samsung.com>
Wed, 5 Jun 2013 11:13:37 +0000 (20:13 +0900)
committerGerrit Code Review <gerrit@gerrit.vlan144.tizendev.org>
Tue, 2 Jul 2013 06:20:35 +0000 (06:20 +0000)
[Title] Raise touch event when two finger gesture in screen reader mode
[Issue#] N/A
[Problem] Touch event was not occured
[Cause] Do not raise touch event
[Solution] Raise touch event

Change-Id: I40e9297d7b57b229220126c217f23749ad618617

Source/WebKit2/UIProcess/API/efl/tizen/ScreenReaderProxy.cpp

index da08a40..b8545b8 100755 (executable)
@@ -189,17 +189,40 @@ Eina_Bool ScreenReaderProxy::executeAction(void* data, Evas_Object*, Elm_Access_
     }
 
     case ELM_ACCESS_ACTION_SCROLL:
-    case ELM_ACCESS_ACTION_MOUSE:
+    case ELM_ACCESS_ACTION_MOUSE: {
+        Ewk_Event_Gesture gestureEvent;
+        memset(&gestureEvent, 0, sizeof(Ewk_Event_Gesture));
+        gestureEvent.type = EWK_GESTURE_PAN;
+        gestureEvent.position.x = actionInfo->x;
+        gestureEvent.position.y = actionInfo->y;
+        gestureEvent.scale = 1;
+        gestureEvent.count = 1;
+        gestureEvent.timestamp = ecore_time_get() * 1000;
+
+        Evas* evas = evas_object_evas_get(viewImpl->view());
+        const Ewk_View_Smart_Data* smartData = static_cast<Ewk_View_Smart_Data*>(evas_object_smart_data_get(viewImpl->view()));
+
         if (actionInfo->mouse_type == 0) {
-            viewImpl->gestureClient->reset();
-            viewImpl->gestureClient->setGestureEnabled(true);
-            viewImpl->gestureClient->setMovingEnabled(true);
-            viewImpl->gestureClient->startPan(IntPoint(actionInfo->x, actionInfo->y));
-        } else if (actionInfo->mouse_type == 1)
-            viewImpl->gestureClient->movePan(IntPoint(actionInfo->x, actionInfo->y));
-        else if (actionInfo->mouse_type == 2)
-            viewImpl->gestureClient->endPan(IntPoint(actionInfo->x, actionInfo->y));
+            evas_event_feed_mouse_in(evas, 0, 0);
+            evas_event_feed_mouse_move(evas, actionInfo->x, actionInfo->y, 0, 0);
+            evas_event_feed_mouse_down(evas, 1, EVAS_BUTTON_NONE, 0, 0);
+
+            if (smartData && smartData->api && smartData->api->gesture_start)
+                smartData->api->gesture_start(const_cast<Ewk_View_Smart_Data*>(smartData), &gestureEvent);
+        } else if (actionInfo->mouse_type == 1) {
+            evas_event_feed_mouse_move(evas, actionInfo->x, actionInfo->y, 0, 0);
+
+            if (smartData && smartData->api && smartData->api->gesture_move)
+                smartData->api->gesture_move(const_cast<Ewk_View_Smart_Data*>(smartData), &gestureEvent);
+        } else if (actionInfo->mouse_type == 2) {
+            evas_event_feed_mouse_move(evas, actionInfo->x, actionInfo->y, 0, 0);
+            evas_event_feed_mouse_up(evas, 1, EVAS_BUTTON_NONE, 0, 0);
+
+            if (smartData && smartData->api && smartData->api->gesture_end)
+                smartData->api->gesture_end(const_cast<Ewk_View_Smart_Data*>(smartData), &gestureEvent);
+        }
         break;
+    }
 
     case ELM_ACCESS_ACTION_UP:
         viewImpl->page()->adjustScreenReaderFocusedObjectValue(true);