[e-mod-tizen-screen-reader] Update mouse down event at time of double tap n hold... 02/88502/4
authorPrasoon Singh <prasoon.16@samsung.com>
Mon, 19 Sep 2016 10:45:24 +0000 (16:15 +0530)
committerPrasoon Singh <prasoon.16@samsung.com>
Tue, 20 Sep 2016 06:15:08 +0000 (11:45 +0530)
object x,y position.

Change-Id: Ia37cbc052937a8828fb3d34918a6c16a75a0d1b1

src/e_mod_main.c
src/e_screen_reader_gestures.c
src/e_screen_reader_private.h

index 4aef89292a6e4b2390f3a59fb5a1b2038bfa2422..e965992e27a3835b6f786d8fab81129554a638da 100644 (file)
@@ -26,14 +26,18 @@ EAPI E_Module_Api e_modapi =
 #define GESTURE_DETECTED_SIGNAL 0
 static Eldbus_Message *_sc_enable(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg);
 static Eldbus_Message *_is_slider(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg);
+static Eldbus_Message *_highlighted_object_info(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg);
 
 static const Eldbus_Method methods[] = {
       { "ScreenReaderEnabled", ELDBUS_ARGS({"b", "bool"}), ELDBUS_ARGS({"b", "bool"}),
         _sc_enable
       },
-      { "IsSlider", ELDBUS_ARGS({"b", "bool"}), ELDBUS_ARGS({"b", "bool"}),
+      { "IsSlider", ELDBUS_ARGS({"b", "bool"}), NULL,
         _is_slider
       },
+      { "HighlightedObjectInfo", ELDBUS_ARGS({"i", "int"}, {"i", "int"}), NULL,
+        _highlighted_object_info
+      },
       { }
 };
 
@@ -257,6 +261,15 @@ _is_slider(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg)
    return NULL;
 }
 
+static Eldbus_Message *
+_highlighted_object_info(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg)
+{
+   if (!eldbus_message_arguments_get(msg, "ii", &highlighted_object_x, &highlighted_object_y))
+     ERROR("eldbus_message_arguments_get() error\n");
+
+   return NULL;
+}
+
 static int
 _fetch_a11y_bus_address(void)
 {
index cf92d397de8924ff958fa2525e0eede7d44ff0a6..8806e8033de7400dd5409722430efb4fe0e1436a 100644 (file)
@@ -773,6 +773,13 @@ _hover_event_emit(Cover *cov, gesture_state_e state)
 {
    if (cov->tap_n_hold_gesture_data.double_tap && !is_slider)
      {
+        if (highlighted_object_x != -1 && highlighted_object_y != -1)
+          {
+             cov->tap_n_hold_gesture_data.ev_down->x = highlighted_object_x;
+             cov->tap_n_hold_gesture_data.ev_down->y = highlighted_object_y;
+             cov->tap_n_hold_gesture_data.ev_down->root.x = highlighted_object_x;
+             cov->tap_n_hold_gesture_data.ev_down->root.y = highlighted_object_y;
+          }
         _emit_mouse_move_event(cov->tap_n_hold_gesture_data.ev_down);
         cov->tap_n_hold_gesture_data.ev_down->multi.radius += MAGIC_NUMBER;
         cov->tap_n_hold_gesture_data.drag_start = EINA_TRUE;
@@ -1216,6 +1223,8 @@ _mouse_button_up(int type, Ecore_Event_Mouse_Button *event)
         ev_up->multi.radius += MAGIC_NUMBER;
         ecore_event_add(ECORE_EVENT_MOUSE_BUTTON_UP, ev_up, NULL, NULL);
         cover->tap_n_hold_gesture_data.drag_start = EINA_FALSE;
+        highlighted_object_x = -1;
+        highlighted_object_y = -1;
      }
    cover->n_taps--;
    cover->event_time = ev->timestamp;
@@ -1294,6 +1303,8 @@ _gesture_init()
         return;
      }
     is_slider = EINA_FALSE;
+    highlighted_object_x = -1;
+    highlighted_object_y = -1;
 }
 
 static void
index 448bcb3a4805fee585adb1a0b3263acdc7438b33..46440d5370ef2b50c320b9b3d0edc91641e2f2a0 100644 (file)
@@ -65,7 +65,7 @@ typedef struct {
 } Gesture_Info;
 
 Eina_Bool is_slider;
-
+int highlighted_object_x, highlighted_object_y;
 int _e_mod_log_init(void);
 void _e_mod_log_shutdown(void);