Fix P120821-4699[Settings/About phone][Function][EXP] 'Tap to instert' text overlaps...
authorJing Yigang <yigang.jing@samsung.com>
Tue, 28 Aug 2012 03:15:43 +0000 (11:15 +0800)
committerJing Yigang <yigang.jing@samsung.com>
Tue, 28 Aug 2012 03:15:43 +0000 (11:15 +0800)
Change-Id: I1890356d3be8f17170577cb4a96dfe3bd6294762

setting-about/src/setting-about-main.c
setting-common/src/setting-common-draw-genlist.c

index 5c00d7a..b1613c2 100755 (executable)
@@ -590,6 +590,8 @@ static void __entry_key_down_cb(void *data, Evas *e, Evas_Object *obj, void *eve
        Evas_Event_Key_Down *ev = (Evas_Event_Key_Down *)event_info;
        SETTING_TRACE_DEBUG("ev->key : %s", ev->key);
 
+       SETTING_TRACE("ad->item_dev_name->eo_check:%p", ad->item_dev_name->eo_check);
+       SETTING_TRACE("obj:%p, %s", obj, elm_entry_entry_get(obj));
        if(safeStrCmp(ev->key, "Return") == 0)
        {
                // if entry has 1 char at list, hide ime.
@@ -606,21 +608,17 @@ static void __entry_key_down_cb(void *data, Evas *e, Evas_Object *obj, void *eve
                        ad->popup = setting_create_popup_without_btn(ad, ad->win_get, NULL, _(EMPTY_LIMITATION_STR),
                                             __about_popup_rsp_cb, POPUP_INTERVAL, FALSE, FALSE);
                }
+       } else {
+               Evas_Object *entry_container = elm_object_parent_widget_get(obj);
+               if(safeStrLen(elm_entry_entry_get(obj)) > 0) {
+                       elm_object_signal_emit(entry_container, "elm,state,guidetext,hide", "elm");
+               } else {
+                       //elm_object_part_text_set(entry_container, "elm.guidetext", _("IDS_ST_BODY_TAP_TO_INSERT"));
+                       elm_object_signal_emit(entry_container, "elm,state,guidetext,show", "elm");
+               }
        }
 }
 
-static Eina_Bool __add_event_on_idler(void *data)
-{
-       retv_if(data==NULL, FALSE);
-
-       SettingAboutUG *ad = (SettingAboutUG*)data;
-
-       if(ad->item_dev_name)
-       evas_object_event_callback_add(ad->item_dev_name->eo_check, EVAS_CALLBACK_KEY_DOWN, __entry_key_down_cb, ad);
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
 
 int setting_about_generate_genlist(void *data)
 {
@@ -674,6 +672,7 @@ int setting_about_generate_genlist(void *data)
                if (ad->item_dev_name) {
                        ad->item_dev_name->userdata = ad;
                        ad->item_dev_name->isSinglelineFlag = 1;
+                       ad->item_dev_name->start_change_cb = (setting_call_back_func)__entry_key_down_cb;
                        ad->item_dev_name->stop_change_cb = __entry_unfocus_cb;
                        ad->item_dev_name->limit_filter_data = calloc(1, sizeof(Elm_Entry_Filter_Accept_Set));
 
@@ -851,8 +850,6 @@ int setting_about_generate_genlist(void *data)
        ad->update_timer =
            ecore_timer_add(2, (Ecore_Task_Cb) __timer_update_cb, ad);
 
-       ecore_idler_add(__add_event_on_idler, ad);
-
        return SETTING_RETURN_SUCCESS;
 }
 
index 0899e6c..b9353c2 100755 (executable)
@@ -203,7 +203,21 @@ static void __max_len_reached(void *data, Evas_Object *obj, void *event_info)
        }
 
 }
-
+static void __entry_keydown(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       ret_if(event_info == NULL);
+       Evas_Event_Key_Down *ev = (Evas_Event_Key_Down *)event_info;    
+       SETTING_TRACE_DEBUG("ev->key : %s", ev->key);
+       SETTING_TRACE("obj:%p, %s", obj, elm_entry_entry_get(obj));
+       
+       Evas_Object *entry_container = elm_object_parent_widget_get(obj);
+       if(safeStrLen(elm_entry_entry_get(obj)) > 0) {
+               elm_object_signal_emit(entry_container, "elm,state,guidetext,hide", "elm");
+       } else {
+               //elm_object_part_text_set(entry_container, "elm.guidetext", _("IDS_ST_BODY_TAP_TO_INSERT"));
+               elm_object_signal_emit(entry_container, "elm,state,guidetext,show", "elm");
+       }
+}
 
 /**
  * Do process when clicking radio in subitem of expandable item
@@ -515,6 +529,12 @@ static Evas_Object *__add_entry(Setting_GenGroupItem_Data *item_data, Evas_Objec
        evas_object_smart_callback_add(entry, "focused", __entry_focused, ed_name);
        elm_object_signal_callback_add(ed_name, "elm,eraser,clicked", "elm", __eraser_clicked, entry);
 
+       Evas_Object_Event_Cb key_down_cb = __entry_keydown;
+       if (item_data->start_change_cb) {
+               key_down_cb = (Evas_Object_Event_Cb)(item_data->start_change_cb);
+       }
+       evas_object_event_callback_add(entry, EVAS_CALLBACK_KEY_DOWN, key_down_cb, item_data->userdata);
+       
        if (item_data->input_panel_disable_flag) {
                elm_entry_input_panel_enabled_set(entry, EINA_FALSE);
        }