boolean PostInputProcessAutoEng(void* arg, FcitxKeySym sym, unsigned int state, INPUT_RETURN_VALUE* retval) { FcitxAutoEngState* autoEngState = (FcitxAutoEngState*) arg; FcitxInputState* input = FcitxInstanceGetInputState(autoEngState->owner); //boolean disableCheckUAZ = FcitxInstanceGetContextBoolean(autoEngState->owner, CONTEXT_DISABLE_AUTOENG); //if (disableCheckUAZ) // return false; if (autoEngState->enable == false) return false; FcitxIM *im = FcitxInstanceGetCurrentIM(autoEngState->owner); if (im == NULL || strcmp("sogoupinyin", im->uniqueName) != 0) return false; if (FcitxHotkeyIsHotKeyUAZ(sym, state) && (FcitxInputStateGetRawInputBufferSize(input) != 0 || (FcitxInputStateGetKeyState(input) & FcitxKeyState_CapsLock) == 0) && AutoEngCheckPreedit(autoEngState)) { AutoEngSetBuff(autoEngState, FcitxInputStateGetRawInputBuffer(input), FcitxHotkeyPadToMain(sym)); AutoEngActivate(autoEngState, input, retval); return true; } return false; }
boolean SwitchToEng(FcitxAutoEngState *autoEngState, const char *str) { AUTO_ENG *autoeng; if (!AutoEngCheckPreedit(autoEngState)) return false; for (autoeng = (AUTO_ENG*)utarray_front(autoEngState->autoEng); autoeng != NULL; autoeng = (AUTO_ENG*)utarray_next(autoEngState->autoEng, autoeng)) if (!strcmp(str, autoeng->str)) return true; return false; }
boolean PostInputProcessAutoEng(void* arg, FcitxKeySym sym, unsigned int state, INPUT_RETURN_VALUE* retval) { FcitxAutoEngState* autoEngState = (FcitxAutoEngState*) arg; FcitxInputState* input = FcitxInstanceGetInputState(autoEngState->owner); boolean disableCheckUAZ = FcitxInstanceGetContextBoolean(autoEngState->owner, CONTEXT_DISABLE_AUTOENG); if (disableCheckUAZ) return false; if (FcitxHotkeyIsHotKeyUAZ(sym, state) && (FcitxInputStateGetRawInputBufferSize(input) != 0 || (FcitxInputStateGetKeyState(input) & FcitxKeyState_CapsLock) == 0) && AutoEngCheckPreedit(autoEngState)) { *retval = IRV_DISPLAY_MESSAGE; FcitxInputStateSetShowCursor(input, false); AutoEngSetBuff(autoEngState, FcitxInputStateGetRawInputBuffer(input), FcitxHotkeyPadToMain(sym)); autoEngState->active = true; ShowAutoEngMessage(autoEngState, retval); return true; } return false; }