void toggle_im_enabled() { // dbg("toggle_im_enabled\n"); check_CS(); if (current_CS->in_method < 0 || current_CS->in_method > MAX_GTAB_NUM_KEY) p_err("err found"); if (current_CS->im_state != GCIN_STATE_DISABLED) { if (current_CS->im_state == GCIN_STATE_ENG_FULL) { current_CS->im_state = GCIN_STATE_CHINESE; disp_im_half_full(); return; } if (current_method_type() == method_type_TSIN) { #if USE_TSIN flush_tsin_buffer(); #endif } else { output_gbuf(); reset_gtab_all(); } hide_in_win(current_CS); #if 0 hide_win_status(); #endif current_CS->im_state = GCIN_STATE_DISABLED; update_win_kbm(); #if TRAY_ENABLED disp_tray_icon(); #endif } else { if (!current_method_type()) init_gtab(current_CS->in_method); init_state_chinese(current_CS); reset_current_in_win_xy(); #if 1 show_in_win(current_CS); update_in_win_pos(); #else update_in_win_pos(); show_in_win(current_CS); #endif update_win_kbm(); #if TRAY_ENABLED disp_tray_icon(); #endif } }
int hime_FocusIn(ClientState *cs) { // dbg("hime_FocusIn\n"); Window win = cs->client_win; #if UNIX && 0 if (skip_window(win)) return FALSE; #endif reset_current_in_win_xy(); if (cs) { Window win = cs->client_win; if (focus_win != win) { #if 1 hime_reset(); #endif hide_in_win(current_CS); focus_win = win; } } current_CS = cs; save_CS_temp_to_current(); // dbg("current_CS %x %d %d\n", cs, cs->im_state, current_CS->im_state); if (win == focus_win) { if (cs->im_state != HIME_STATE_DISABLED) { show_in_win(cs); move_IC_in_win(cs); } else hide_in_win(cs); } if (inmd[cs->in_method].selkey) set_wselkey(inmd[cs->in_method].selkey); else { set_wselkey(pho_selkey); gtab_set_win1_cb(); tsin_set_win1_cb(); } update_win_kbm(); #if TRAY_ENABLED disp_tray_icon(); #endif #if 0 dbg_time("hime_FocusIn %x %x\n",cs, current_CS); #endif return True; }
void show_win_kbm() { if (!gwin_kbm) { create_win_kbm(); update_win_kbm(); } gtk_widget_show_all(gwin_kbm); win_kbm_on = 1; #if WIN32 gtk_window_present(GTK_WINDOW(gwin_kbm)); #endif move_win_kbm(); }
int gcin_FocusIn(ClientState *cs) { Window win = cs->client_win; gcin_reset(); #if UNIX if (skip_window(win)) return FALSE; #endif reset_current_in_win_xy(); if (cs) { Window win = cs->client_win; if (focus_win != win) { hide_in_win(current_CS); focus_win = win; } } current_CS = cs; // dbg("current_CS %x %d %d\n", cs, cs->im_state, current_CS->im_state); if (win == focus_win) { if (cs->im_state != GCIN_STATE_DISABLED) { show_in_win(cs); move_IC_in_win(cs); #if 0 set_win_status_inmd(inmd[cs->in_method].cname); #endif } else hide_in_win(cs); } update_win_kbm(); #if TRAY_ENABLED disp_tray_icon(); #endif #if 0 dbg_time("gcin_FocusIn %x %x\n",cs, current_CS); #endif return True; }
void update_win_kbm_inited() { if (win_kbm_inited) update_win_kbm(); }
void toggle_im_enabled() { // dbg("toggle_im_enabled\n"); check_CS(); if (current_CS->in_method < 0) p_err("err found"); if (current_CS->im_state != HIME_STATE_DISABLED) { if (current_CS->im_state == HIME_STATE_ENG_FULL) { current_CS->im_state = HIME_STATE_CHINESE; disp_im_half_full(); save_CS_current_to_temp(); return; } if (current_method_type() == method_type_TSIN) { #if USE_TSIN flush_tsin_buffer(); #endif } else if (current_method_type () == method_type_MODULE) { module_cb ()->module_flush_input (); } else { output_gbuf(); reset_gtab_all(); } hide_in_win(current_CS); #if 0 hide_win_status(); #endif current_CS->im_state = HIME_STATE_DISABLED; update_win_kbm(); #if TRAY_ENABLED disp_tray_icon(); #endif } else { if (!current_method_type()) init_gtab(current_CS->in_method); init_state_chinese(current_CS); reset_current_in_win_xy(); #if 1 show_in_win(current_CS); update_in_win_pos(); #else update_in_win_pos(); show_in_win(current_CS); #endif update_win_kbm(); #if TRAY_ENABLED disp_tray_icon(); #endif } save_CS_current_to_temp(); }