void focus_out_then_focus_in_with_aux_text_test() { gboolean cleanBufferFocusOut=ibus_chewing_pre_edit_get_property_boolean(engine->icPreEdit, "clean-buffer-focus-out"); ibus_chewing_engine_set_capabilite(engine, IBUS_CAP_AUXILIARY_TEXT); ibus_chewing_engine_focus_in(engine); ibus_chewing_engine_enable(engine); ibus_chewing_engine_process_key_event(IBUS_ENGINE(engine), 'j', 0x24, 0); ibus_chewing_engine_process_key_event(IBUS_ENGINE(engine), 'j', 0x24, IBUS_RELEASE_MASK); check_output("", "ㄨ", "ㄨ"); /* focus out should not touch Texts */ printf("########### cleanBufferFocusOut: %d\n", cleanBufferFocusOut); ibus_chewing_engine_focus_out(engine); g_assert(cleanBufferFocusOut==ibus_chewing_pre_edit_get_property_boolean(engine->icPreEdit, "clean-buffer-focus-out")); if (cleanBufferFocusOut){ check_output("", "", ""); }else{ check_output("", "ㄨ", "ㄨ"); } /* all should be clean */ ibus_chewing_engine_focus_in(engine); check_output("", "", ""); ibus_chewing_pre_edit_clear(engine->icPreEdit); check_output("", "", ""); }
void focus_out_then_focus_in_with_aux_text_test() { gboolean cleanBufferFocusOut = ibus_chewing_pre_edit_get_property_boolean (engine->icPreEdit, "clean-buffer-focus-out"); ibus_chewing_pre_edit_save_property_boolean(engine->icPreEdit, "add-phrase-direction", TRUE); ibus_chewing_engine_set_capabilite(engine, IBUS_CAP_AUXILIARY_TEXT); ibus_chewing_engine_focus_in(engine); ibus_chewing_engine_enable(engine); ibus_chewing_engine_process_key_event(IBUS_ENGINE(engine), 'j', 0x24, 0); ibus_chewing_engine_process_key_event(IBUS_ENGINE(engine), 'j', 0x24, IBUS_RELEASE_MASK); ibus_chewing_engine_process_key_event(IBUS_ENGINE(engine), '3', 0x04, 0); ibus_chewing_engine_process_key_event(IBUS_ENGINE(engine), '3', 0x04, IBUS_RELEASE_MASK); ibus_chewing_engine_process_key_event(IBUS_ENGINE(engine), 'j', 0x24, 0); ibus_chewing_engine_process_key_event(IBUS_ENGINE(engine), 'j', 0x24, IBUS_RELEASE_MASK); ibus_chewing_engine_process_key_event(IBUS_ENGINE(engine), '3', 0x04, 0); ibus_chewing_engine_process_key_event(IBUS_ENGINE(engine), '3', 0x04, IBUS_RELEASE_MASK); ibus_chewing_engine_process_key_event(IBUS_ENGINE(engine), '2', 0x03, IBUS_CONTROL_MASK); ibus_chewing_engine_process_key_event(IBUS_ENGINE(engine), '2', 0x03, IBUS_RELEASE_MASK); check_output("", "五五", "已有:五五"); /* focus out should not touch Texts */ ibus_chewing_engine_focus_out(engine); g_assert(cleanBufferFocusOut == ibus_chewing_pre_edit_get_property_boolean (engine->icPreEdit, "clean-buffer-focus-out")); if (cleanBufferFocusOut) { check_output("", "", ""); } else { check_output("", "五五", "已有:五五"); } /* all should be clean */ ibus_chewing_engine_focus_in(engine); check_output("", "", ""); ibus_chewing_pre_edit_clear(engine->icPreEdit); check_output("", "", ""); }
void ibus_chewing_engine_refresh_systray_icon(IBusChewingEngine * self) { if (ibus_chewing_pre_edit_get_property_boolean (self->icPreEdit, "show-systray")) { ibus_chewing_systray_chi_eng_refresh_value(self-> iChiEngSystrayIcon, self->icPreEdit); } }
void ibus_chewing_engine_apply_show_systray_icon(IBusChewingEngine * self) { if (ibus_chewing_pre_edit_get_property_boolean (self->icPreEdit, "show-systray")) { ibus_chewing_engine_systray_icon_create(self); } else { ibus_chewing_systray_icon_free(self->iChiEngSystrayIcon); } }
void ibus_chewing_engine_systray_icon_create(IBusChewingEngine * self) { if (ibus_chewing_pre_edit_get_property_boolean (self->icPreEdit, "show-systray")) { if (self->iChiEngSystrayIcon == NULL) { self->iChiEngSystrayIcon = ibus_chewing_systray_chi_eng_icon_new(self->icPreEdit); } ibus_chewing_systray_icon_set_visible(self->iChiEngSystrayIcon, TRUE); } }
void ibus_chewing_engine_focus_out(IBusChewingEngine * self) { IBUS_CHEWING_LOG(MSG, "* focus_out(): statusFlags=%x", self->_priv->statusFlags); ibus_chewing_engine_clear_status_flag(self, ENGINE_FLAG_FOCUS_IN | ENGINE_FLAG_PROPERTIES_REGISTERED); ibus_chewing_engine_hide_property_list(self); if(ibus_chewing_pre_edit_get_property_boolean(self->icPreEdit, "clean-buffer-focus-out")){ /* Clean the buffer when focus out */ ibus_chewing_pre_edit_clear(self->icPreEdit); refresh_pre_edit_text(self); refresh_aux_text(self); } IBUS_CHEWING_LOG(DEBUG, "focus_out(): return"); }
gint main(gint argc, gchar ** argv) { g_test_init(&argc, &argv, NULL); mkdg_log_set_level(DEBUG); engine = ibus_chewing_engine_new(); ibus_chewing_pre_edit_save_property_int(engine->icPreEdit, "max-chi-symbol-len", 8); ibus_chewing_pre_edit_set_apply_property_boolean(engine->icPreEdit, "plain-zhuyin", FALSE); gboolean cleanBufferFocusOut=ibus_chewing_pre_edit_get_property_boolean(engine->icPreEdit, "clean-buffer-focus-out"); TEST_RUN_THIS(focus_out_then_focus_in_with_aux_text_clean_buffer_off_test); TEST_RUN_THIS(focus_out_then_focus_in_with_aux_text_clean_buffer_on_test); ibus_chewing_pre_edit_save_property_boolean(engine->icPreEdit, "clean-buffer-focus-out", cleanBufferFocusOut); return g_test_run(); }