// return TRUE if the key press is processed gboolean ProcessKeyRelease(KeySym keysym, u_int kev_state) { disp_win_kbm_capslock(); check_CS(); #if 0 dbg_time("key release %x %x\n", keysym, kev_state); #endif if (current_CS->im_state == HIME_STATE_DISABLED) return FALSE; #if 1 if (current_CS->b_hime_protocol && (last_keysym == XK_Shift_L || last_keysym == XK_Shift_R || last_keysym == XK_Control_L || last_keysym == XK_Control_R)) { if (((keysym == XK_Control_L || keysym == XK_Control_R) && (kev_state & ShiftMask)) || ((keysym == XK_Shift_L || keysym == XK_Shift_R) && (kev_state & ControlMask))) { cycle_next_in_method(); return TRUE; } } #endif switch(current_method_type()) { case method_type_TSIN: return feedkey_pp_release(keysym, kev_state); case method_type_MODULE: if (!module_cb()) return FALSE; return module_cb()->module_feedkey_release(keysym, kev_state); default: return feedkey_gtab_release(keysym, kev_state); } return FALSE; }
// return TRUE if the key press is processed gboolean ProcessKeyRelease(KeySym keysym, u_int kev_state) { check_CS(); #if 0 dbg_time("key release %x %x\n", keysym, kev_state); #endif if (current_CS->im_state == GCIN_STATE_DISABLED) return FALSE; #if 1 if (current_CS->b_gcin_protocol && (last_keysym == XK_Shift_L || last_keysym == XK_Shift_R || last_keysym == XK_Control_L || last_keysym == XK_Control_R)) { if (((keysym == XK_Control_L || keysym == XK_Control_R) && (kev_state & ShiftMask)) || ((keysym == XK_Shift_L || keysym == XK_Shift_R) && (kev_state & ControlMask))) { cycle_next_in_method(); return TRUE; } } #endif #if USE_TSIN switch(current_method_type()) { case method_type_TSIN: return feedkey_pp_release(keysym, kev_state); #if USE_ANTHY case method_type_ANTHY: return feedkey_anthy_release(keysym, kev_state); #endif } #endif return FALSE; }