Fix bug about already focused item click 31/88531/1
authorKwangyoun Kim <ky85.kim@samsung.com>
Mon, 19 Sep 2016 12:45:12 +0000 (21:45 +0900)
committerKwangyoun Kim <ky85.kim@samsung.com>
Mon, 19 Sep 2016 12:45:12 +0000 (21:45 +0900)
Change-Id: I292657fb4ce8025d2d9cc6c43b0c00c4ef313f6e

src/vc_elm_core.c

index 4ba91e0..284ad3d 100644 (file)
@@ -309,8 +309,13 @@ Eina_Bool _recognize_command(const char *cmd, const char *param1, const char *pa
                                                                                if (EINA_TRUE == parent_info->focusable) {
                                                                                        VC_ELM_LOG_DBG("Focusable Parent");
                                                                                        VC_ELM_LOG_DBG("Click event");
-                                                                                       evas_object_smart_callback_add((Evas_Object*)(parent_info->address), "focused", __focused_cb, "focused");
-                                                                                       elm_object_focus_set((Evas_Object*)(parent_info->address), EINA_TRUE);
+                                                                                       if (EINA_TRUE == elm_object_focus_get((Evas_Object*)parent_info->address)) {
+                                                                                               VC_ELM_LOG_DBG("Already focused");
+                                                                                               ecore_timer_add(0.5, __click_event, NULL);
+                                                                                       } else {
+                                                                                               evas_object_smart_callback_add((Evas_Object*)(parent_info->address), "focused", __focused_cb, "focused");
+                                                                                               elm_object_focus_set((Evas_Object*)(parent_info->address), EINA_TRUE);
+                                                                                       }
                                                                                } else {
                                                                                        Object_Info* grand_info = ea_object_dump_parent_widget_data_get(parent_info);
                                                                                        while (NULL != grand_info) {
@@ -319,16 +324,26 @@ Eina_Bool _recognize_command(const char *cmd, const char *param1, const char *pa
                                                                                                        Elm_Object_Item* item = elm_genlist_at_xy_item_get((Evas_Object*)(grand_info->address), x + w/2, y + h/2, NULL);
                                                                                                        if (NULL != item && EINA_FALSE == elm_object_item_disabled_get(item)) {
                                                                                                                VC_ELM_LOG_DBG("Click event");
-                                                                                                               evas_object_smart_callback_add((Evas_Object*)(grand_info->address), "item,focused", __focused_cb, "item,focused");
-                                                                                                               elm_object_item_focus_set(item, EINA_TRUE);
-                                                                                                               elm_object_focus_set((Evas_Object*)(grand_info->address), EINA_TRUE);
+                                                                                                               if (EINA_TRUE == elm_object_item_focus_get((Evas_Object*)grand_info->address)) {
+                                                                                                                       VC_ELM_LOG_DBG("Already focused");
+                                                                                                                       ecore_timer_add(0.5, __click_event, NULL);
+                                                                                                               } else {
+                                                                                                                       evas_object_smart_callback_add((Evas_Object*)(grand_info->address), "item,focused", __focused_cb, "item,focused");
+                                                                                                                       elm_object_item_focus_set(item, EINA_TRUE);
+                                                                                                                       elm_object_focus_set((Evas_Object*)(grand_info->address), EINA_TRUE);
+                                                                                                               }
                                                                                                        } else {
                                                                                                                item = elm_genlist_at_xy_item_get((Evas_Object*)(grand_info->address), x + w + w/2, y + h/2, NULL);
                                                                                                                if (NULL != item && EINA_FALSE == elm_object_item_disabled_get(item)) {
                                                                                                                        VC_ELM_LOG_DBG("Click event 2");
-                                                                                                                       evas_object_smart_callback_add((Evas_Object*)(grand_info->address), "item,focused", __focused_cb, "item,focused");
-                                                                                                                       elm_object_item_focus_set(item, EINA_TRUE);
-                                                                                                                       elm_object_focus_set((Evas_Object*)(grand_info->address), EINA_TRUE);
+                                                                                                                       if (EINA_TRUE == elm_object_item_focus_get((Evas_Object*)grand_info->address)) {
+                                                                                                                               VC_ELM_LOG_DBG("Already focused");
+                                                                                                                               ecore_timer_add(0.5, __click_event, NULL);
+                                                                                                                       } else {
+                                                                                                                               evas_object_smart_callback_add((Evas_Object*)(grand_info->address), "item,focused", __focused_cb, "item,focused");
+                                                                                                                               elm_object_item_focus_set(item, EINA_TRUE);
+                                                                                                                               elm_object_focus_set((Evas_Object*)(grand_info->address), EINA_TRUE);
+                                                                                                                       }
                                                                                                                }
                                                                                                        }
                                                                                                        break;