Fix issue that remaining black screen when back key is pressed after launch keyboard...
[platform/core/uifw/inputdelegator.git] / src / w-input-selector.cpp
index 4c39358..b79534b 100755 (executable)
@@ -569,15 +569,15 @@ void _back_to_genlist_for_selector()
 
        if (!app_data) return;
 
-       if (app_data->app_type == APP_TYPE_STT || app_data->app_type == APP_TYPE_EMOTICON){
-               PRINTFUNC(DLOG_DEBUG, "launched as STT/EMOTICON mode, So exit here.");
-               reply_to_sender_by_callback(NULL, NULL);
-               elm_exit();
-       }
        if (_WEARABLE) {
                Evas_Object *circle_genlist = (Evas_Object *) evas_object_data_get(app_data->genlist, "circle");
                eext_rotary_object_event_activated_set(circle_genlist, EINA_TRUE);
        }
+       if (app_data->app_type == APP_TYPE_STT || app_data->app_type == APP_TYPE_EMOTICON || app_data->app_type == APP_TYPE_KEYBOARD){
+               PRINTFUNC(DLOG_DEBUG, "launched as STT/EMOTICON/KEYBOARD mode, So exit here.");
+               reply_to_sender_by_callback(NULL, NULL);
+               elm_exit();
+       }
 }
 
 static void _item_realized(void *data, Evas_Object *obj, void *event_info) //called when list scrolled
@@ -608,12 +608,15 @@ Evas_Object* _create_genlist(Evas_Object* navi)
 
        show_gl_focus(EINA_FALSE);
 
+       const char *item_style = NULL;
+       if (_WEARABLE)
+               item_style = "empty";
        Elm_Object_Item *nf_main_item = elm_naviframe_item_push(navi,
             NULL,
             NULL,
             NULL,
             genlist,
-            "empty");
+            item_style);
 
        elm_naviframe_item_pop_cb_set(nf_main_item, back_cb, app_data);
        evas_object_smart_callback_add(genlist, "realized", _item_realized, NULL);
@@ -915,6 +918,13 @@ void _app_service(app_control_h service, void* user_data)
        app_control_clone(&(app_data->source_app_control), service);
        app_data->reply_type = REPLY_APP_NORMAL;
 
+       if (_TV || _MOBILE) {
+               app_data->app_type = APP_TYPE_KEYBOARD;
+               input_keyboard_init(service);
+               _keyboard_clicked_cb((void *)app_data, NULL, NULL);
+               goto ACTIVATE;
+       }
+
        ret = app_control_is_extra_data_array(service, APP_CONTROL_DATA_INPUT_TYPE, &is_extra_data_array);
        if ( is_extra_data_array == true) {
                ret = app_control_get_extra_data_array(service, APP_CONTROL_DATA_INPUT_TYPE, &input_type_array, &input_type_array_len);