}
};
+static int selected_index = 0;
+
static void im_setting_list_sort_ime_info(std::vector<ime_info_s> &preinstall, std::vector<ime_info_s> &user)
{
std::sort(preinstall.begin(), preinstall.end(), ime_info_compare());
if (item && obj) {
elm_genlist_item_selected_set(item, EINA_FALSE);
- /* Update check button */
- Evas_Object *radio = elm_object_item_part_content_get(item, "elm.icon.right");
+ /* Update radio button */
+ Evas_Object *radio = elm_object_item_part_content_get(item, "elm.swallow.end");
if (radio == NULL) {
radio = elm_object_item_part_content_get(item, "elm.icon");
}
evas_object_data_set(radio, "parent_genlist", obj);
elm_radio_value_set(radio, index);
- isf_control_set_active_ime(g_active_ime_info_list[index].appid);
}
}
im_setting_list_update_window(ad);
}
+static Eina_Bool _ime_select_idler_cb(void *data)
+{
+ appdata *ad = (appdata *)data;
+ if (!ad) return ECORE_CALLBACK_CANCEL;
+
+ LOGD("set active IME\n");
+ isf_control_set_active_ime(g_active_ime_info_list[selected_index].appid);
+
+ LOGD("update window selector\n");
+ im_setting_list_update_window_selector(ad);
+
+ LOGD("delete popup\n");
+
+ if (ad->popup) {
+ evas_object_del(ad->popup);
+ }
+ ad->popup = NULL;
+
+ if (ad->app_type == APP_TYPE_NORMAL) {
+ if (ad->naviframe)
+ elm_naviframe_item_pop(ad->naviframe);
+ }
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
static void im_setting_list_ime_sel_cb(void *data, Evas_Object *obj, void *event_info)
{
sel_cb_data *cb_data = (sel_cb_data *)data;
return;
int index = cb_data->index;
+ selected_index = index;
Elm_Object_Item *item = (Elm_Object_Item *)event_info;
if (!item) {
}
im_setting_list_update_radio_state(item, obj, index);
- im_setting_list_update_window_selector(ad);
-
- if (ad->popup) {
- evas_object_del(ad->popup);
- }
- ad->popup = NULL;
-
- delete cb_data;
- if (ad->app_type == APP_TYPE_NORMAL)
- elm_naviframe_item_pop(ad->naviframe);
+ ecore_idler_add(_ime_select_idler_cb, ad);
}
static Evas_Object *im_setting_list_genlist_create(Evas_Object* parent, Evas_Object* conform)
Evas_Object *radio = elm_radio_add(obj);
elm_object_style_set(radio, "list");
elm_radio_state_value_set(radio, index);
+ evas_object_propagate_events_set(radio, EINA_FALSE);
elm_radio_group_add(radio, group_radio);
evas_object_show(radio);
evas_object_smart_callback_add(radio, "changed", im_setting_list_radio_change_cb, (void *) (index));
}
};
+static int selected_index = 0;
+
static void im_setting_selector_text_domain_set(void)
{
bindtextdomain(IM_SETTING_SELECTOR_PACKAGE, IM_SETTING_SELECTOR_LOCALE_DIR);
}
evas_object_data_set(radio, "parent_genlist", obj);
elm_radio_value_set(radio, index);
- isf_control_set_active_ime(g_ime_info_list[index].appid);
}
}
+static Eina_Bool _ime_select_idler_cb(void *data)
+{
+ appdata *ad = (appdata *)data;
+ if (!ad) return ECORE_CALLBACK_CANCEL;
+
+ LOGD("set active IME\n");
+ isf_control_set_active_ime(g_ime_info_list[selected_index].appid);
+
+ if (ad->naviframe)
+ elm_naviframe_item_pop(ad->naviframe);
+
+ ui_app_exit();
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
static void im_setting_selector_ime_sel_cb(void *data, Evas_Object *obj, void *event_info)
{
sel_cb_data *cb_data = (sel_cb_data *)data;
Elm_Object_Item *item = (Elm_Object_Item *)event_info;
if (!item)
return;
+
+ selected_index = index;
im_setting_selector_update_radio_state(item, obj, index);
+ ecore_idler_add(_ime_select_idler_cb, ad);
delete cb_data;
- elm_naviframe_item_pop(ad->naviframe);
- ui_app_exit();
}
static Evas_Object *im_setting_selector_genlist_create(Evas_Object* parent, Evas_Object* conform)
Evas_Object *radio = elm_radio_add(obj);
elm_object_style_set(radio, "list");
elm_radio_state_value_set(radio, index);
+ evas_object_propagate_events_set(radio, EINA_FALSE);
elm_radio_group_add(radio, group_radio);
evas_object_show(radio);
evas_object_smart_callback_add(radio, "changed", im_setting_selector_radio_change_cb, (void *) (index));