[Bug] Fix N_SE-13781 : if the text already reach max length, then press enter key...
[apps/core/preloaded/settings.git] / setting-common / src / setting-common-draw-genlist.c
index cfecfb3..2bd29da 100755 (executable)
@@ -24,8 +24,6 @@
 #include <Ecore_X.h>
 #include <system_settings.h>
 
-#define EXCEED_LIMITATION_STR          "The content is too long."
-
 static Evas_Object *_gl_Gendial_content_get(void *data, Evas_Object *obj, const char *part);
 static char *_gl_Gendial_text_get(void *data, Evas_Object *obj, const char *part);
 static void _gl_Gendial_del(void *data, Evas_Object *obj);
@@ -213,14 +211,18 @@ 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);
+       retm_if(data == NULL, "Data parameter is NULL");
+       retm_if(event_info == NULL, "event_info is NULL");
+       Setting_GenGroupItem_Data *list_item = (Setting_GenGroupItem_Data *) data;
        Evas_Event_Key_Down *ev = (Evas_Event_Key_Down *)event_info;
        if(safeStrCmp(ev->key, "KP_Enter") == 0 //it is for Japanese keyboard to fix N_SE-10719
           || safeStrCmp(ev->key, "Return") == 0) //to disable the 'Enter' orginal function
        {
                SETTING_TRACE("ENTER %s ev->key:%s", __FUNCTION__, ev->key);
+               list_item->enterKeyPressFlag = true;
                //hide the eraser button
                //format like:xx<br/>
                const char *entry_str = remove_first_substring(elm_entry_entry_get(obj), "<br/>");
@@ -229,6 +231,7 @@ static void __entry_keydown(void *data, Evas *e, Evas_Object *obj, void *event_i
                elm_entry_cursor_end_set(obj);
                setting_hide_input_pannel_cb(obj);
        } else {
+               list_item->enterKeyPressFlag = false;
                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");
@@ -508,11 +511,17 @@ static Evas_Object *__add_entry(Setting_GenGroupItem_Data *item_data, Evas_Objec
                     elm_entry_filter_limit_size,
                     item_data->limit_filter_data);
 
-               evas_object_smart_callback_add(entry,
-                                             "maxlength,reached",
-                                             __max_len_reached,
-                                             item_data);
-
+               if (item_data->maxlength_reached_cb) {
+                       evas_object_smart_callback_add(entry,
+                                                     "maxlength,reached",
+                                                     item_data->maxlength_reached_cb,
+                                                     item_data);
+               } else {
+                       evas_object_smart_callback_add(entry,
+                                                     "maxlength,reached",
+                                                     __max_len_reached,
+                                                     item_data);
+               }
        }
        if (item_data->stop_change_cb) {//invoked when stop focusing on
                evas_object_smart_callback_add(entry,