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("", "", ""); }
/** * ibus_chewing_engine_reset: * @self: IBusChewingEngine instance. * * Reset the outgoing and pre_edit buffer and cursor * chewing_reset will NOT called here, as it will chnage the KBType and input mode. */ void ibus_chewing_engine_reset(IBusChewingEngine * self) { IBUS_CHEWING_LOG(MSG, "* reset"); /* Always clean buffer */ ibus_chewing_pre_edit_clear(self->icPreEdit); #ifndef UNIT_TEST IBusEngine *engine = IBUS_ENGINE(self); ibus_engine_hide_auxiliary_text(engine); ibus_engine_hide_lookup_table(engine); ibus_engine_update_preedit_text(engine, SELF_GET_CLASS(self)->emptyText, 0, FALSE); #endif }
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_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"); }
void ibus_chewing_engine_focus_in(IBusChewingEngine * self) { IBUS_CHEWING_LOG(MSG, "* focus_in(): statusFlags=%x", self->_priv->statusFlags); ibus_chewing_engine_use_setting(self); ibus_chewing_engine_restore_mode(self); ibus_chewing_engine_refresh_property_list(self); /* Shouldn't have anything to commit when Focus-in */ ibus_chewing_pre_edit_clear(self->icPreEdit); refresh_pre_edit_text(self); refresh_aux_text(self); #ifdef UNIT_TEST refresh_outgoing_text(self); #else commit_text(self); #endif ibus_chewing_engine_set_status_flag(self, ENGINE_FLAG_FOCUS_IN); IBUS_CHEWING_LOG(INFO, "focus_in() statusFlags=%x: return", self->_priv->statusFlags); }