INPUT_RETURN_VALUE FcitxKkcDoInput(void* arg, FcitxKeySym _sym, unsigned int _state) { FcitxKkc *kkc = (FcitxKkc*)arg; FcitxInputState* input = FcitxInstanceGetInputState(kkc->owner); FcitxKeySym sym = (FcitxKeySym) FcitxInputStateGetKeySym(input); uint32_t state = FcitxInputStateGetKeyState(input); return FcitxKkcDoInputReal(arg, sym, state); }
INPUT_RETURN_VALUE FcitxRimeDoInput(void* arg, FcitxKeySym _sym, unsigned int _state) { FcitxRime *rime = (FcitxRime *)arg; FcitxInputState *input = FcitxInstanceGetInputState(rime->owner); uint32_t sym = FcitxInputStateGetKeySym(input); uint32_t state = FcitxInputStateGetKeyState(input); _state &= (FcitxKeyState_SimpleMask | FcitxKeyState_CapsLock); if (_state & (~(FcitxKeyState_Ctrl_Alt_Shift | FcitxKeyState_CapsLock))) { return IRV_TO_PROCESS; } state &= (FcitxKeyState_SimpleMask | FcitxKeyState_CapsLock); return FcitxRimeDoInputReal(arg, sym, state); }
INPUT_RETURN_VALUE FcitxUnikeyDoInput(void* arg, FcitxKeySym sym, unsigned int state) { FcitxUnikey* unikey = (FcitxUnikey*) arg; INPUT_RETURN_VALUE tmp; FcitxInputState* input = FcitxInstanceGetInputState(unikey->owner); /* use origin sym and state here */ sym = (FcitxKeySym) FcitxInputStateGetKeySym(input); state = FcitxInputStateGetKeyState(input); tmp = FcitxUnikeyDoInputPreedit(unikey, sym, state); // check last keyevent with shift if (sym >= FcitxKey_space && sym <=FcitxKey_asciitilde) { unikey->last_key_with_shift = state & FcitxKeyState_Shift; } else { unikey->last_key_with_shift = false; } // end check last keyevent with shift return tmp; }