boolean FcitxRimePaging(void* arg, boolean prev) { FcitxRime *rime = (FcitxRime *)arg; boolean result = RimeProcessKey(rime->session_id, prev ? FcitxKey_Page_Up : FcitxKey_Page_Down, 0); if (result) { FcitxRimeGetCandWords(rime); FcitxUIUpdateInputWindow(rime->owner); } return result; }
BOOL RimeWithWeaselHandler::ProcessKeyEvent(weasel::KeyEvent keyEvent, UINT session_id, LPWSTR buffer) { DLOG(INFO) << "Process key event: keycode = " << keyEvent.keycode << ", mask = " << keyEvent.mask << ", session_id = " << session_id; if (m_disabled) return FALSE; Bool handled = RimeProcessKey(session_id, keyEvent.keycode, expand_ibus_modifier(keyEvent.mask)); _Respond(session_id, buffer); _UpdateUI(session_id); m_active_session = session_id; return (BOOL)handled; }
// input static jboolean process_key(JNIEnv *env, jobject thiz, jint session_id, jint keycode, jint mask) { return RimeProcessKey((RimeSessionId)session_id, keycode, mask); }