void _fcitx_im_widget_load(FcitxImWidget* self) { gtk_list_store_clear(self->imstore); if (self->array) { g_ptr_array_set_free_func(self->array, (GDestroyNotify) fcitx_im_item_free); g_ptr_array_free(self->array, FALSE); self->array = NULL; } self->array = fcitx_input_method_get_imlist(self->improxy); if (self->array) { g_ptr_array_set_free_func(self->array, NULL); foreach_ct context; context.widget = self; context.flag = FALSE; g_ptr_array_foreach(self->array, _fcitx_inputmethod_insert_foreach_cb, &context); if (context.flag) gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(self->imview)), &context.iter); g_free(self->focus); self->focus = NULL; _fcitx_im_widget_im_selection_changed(gtk_tree_view_get_selection(GTK_TREE_VIEW(self->imview)), self); } }
void _fcitx_wizard_im_dialog_connect(FcitxWizardImDialog* self) { int i; GError* error = NULL; if (self->owner->im_dialog_array == NULL) { self->improxy = fcitx_input_method_new(G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE, fcitx_utils_get_display_number(), NULL, &error ); if (self->improxy == NULL) { g_error_free(error); return; } self->owner->im_dialog_array = fcitx_input_method_get_imlist(self->improxy); if (self->owner->im_dialog_array_del != NULL) { for (i = 0; i < self->owner->im_dialog_array_del->len; i += 1) { g_ptr_array_add(self->owner->im_dialog_array, g_ptr_array_index(self->owner->im_dialog_array_del, i)); } } } _fcitx_wizard_im_dialog_load(self); }
void _fcitx_im_dialog_load(FcitxImDialog* self) { gtk_list_store_clear(self->availimstore); if (self->array) { g_ptr_array_set_free_func(self->array, fcitx_im_item_free); g_ptr_array_free(self->array, FALSE); self->array = NULL; } self->array = fcitx_input_method_get_imlist(self->improxy); if (self->array) { g_ptr_array_set_free_func(self->array, NULL); g_ptr_array_foreach(self->array, _fcitx_inputmethod_insert_foreach_cb, self); _fcitx_im_dialog_im_selection_changed(gtk_tree_view_get_selection(GTK_TREE_VIEW(self->availimview)), self); } }