OLD | NEW |
1 #ifndef IBUS_1_1 | 1 #ifndef IBUS_1_1 |
2 gboolean ibus_chewing_engine_process_key_event_1_2(IBusEngine *engine, | 2 gboolean ibus_chewing_engine_process_key_event_1_2(IBusEngine *engine, |
3 guint keysym_ignore, guint keycode, guint modifiers){ | 3 guint keysym_ignore, guint keycode, guint modifiers){ |
4 if (modifiers & IBUS_RELEASE_MASK){ | 4 if (modifiers & IBUS_RELEASE_MASK){ |
5 /* Skip release event */ | 5 /* Skip release event */ |
6 return TRUE; | 6 return TRUE; |
7 } | 7 } |
8 IBusChewingEngine *self=IBUS_CHEWING_ENGINE(engine); | 8 IBusChewingEngine *self=IBUS_CHEWING_ENGINE(engine); |
9 guint keysym=ibus_keymap_lookup_keysym (self->keymap_us,keycode,modifiers); | 9 guint keysym=ibus_keymap_lookup_keysym (self->keymap_us,keycode,modifiers); |
10 return ibus_chewing_engine_process_key_event(engine, keysym, modifiers); | 10 return ibus_chewing_engine_process_key_event(engine, keysym, modifiers); |
(...skipping 23 matching lines...) Expand all Loading... |
34 /* Convert kp numbers to normal */ | 34 /* Convert kp numbers to normal */ |
35 self_handle_Default(self,keysym_tmp,FALSE); | 35 self_handle_Default(self,keysym_tmp,FALSE); |
36 } | 36 } |
37 }else{ | 37 }else{ |
38 switch (keysym){ | 38 switch (keysym){ |
39 case IBUS_Return: | 39 case IBUS_Return: |
40 case IBUS_KP_Enter: | 40 case IBUS_KP_Enter: |
41 chewing_handle_Enter(self->context); | 41 chewing_handle_Enter(self->context); |
42 break; | 42 break; |
43 case IBUS_Escape: | 43 case IBUS_Escape: |
| 44 if (self->inputMode==CHEWING_INPUT_MODE_BYPASS) |
| 45 return FALSE; |
44 chewing_handle_Esc(self->context); | 46 chewing_handle_Esc(self->context); |
45 break; | 47 break; |
46 case IBUS_BackSpace: | 48 case IBUS_BackSpace: |
| 49 if (self->inputMode==CHEWING_INPUT_MODE_BYPASS) |
| 50 return FALSE; |
47 chewing_handle_Backspace(self->context); | 51 chewing_handle_Backspace(self->context); |
48 break; | 52 break; |
49 case IBUS_Delete: | 53 case IBUS_Delete: |
50 case IBUS_KP_Delete: | 54 case IBUS_KP_Delete: |
| 55 if (self->inputMode==CHEWING_INPUT_MODE_BYPASS) |
| 56 return FALSE; |
51 chewing_handle_Del(self->context); | 57 chewing_handle_Del(self->context); |
52 break; | 58 break; |
53 case IBUS_space: | 59 case IBUS_space: |
54 case IBUS_KP_Space: | 60 case IBUS_KP_Space: |
55 /** | 61 /** |
56 * Fix for space in Temporary mode. | 62 * Fix for space in Temporary mode. |
57 */ | 63 */ |
58 chewing_handle_Space(self->context); | 64 chewing_handle_Space(self->context); |
59 » » if (self->inputMode==CHEWING_INPUT_MODE_SELECTING_DONE) | 65 » » if (self->inputMode==CHEWING_INPUT_MODE_SELECTING_DONE || |
| 66 » » » self->inputMode==CHEWING_INPUT_MODE_BYPASS ) |
60 ibus_chewing_engine_set_status_flag(self,ENGINE_STATUS_N
EED_COMMIT); | 67 ibus_chewing_engine_set_status_flag(self,ENGINE_STATUS_N
EED_COMMIT); |
61 break; | 68 break; |
62 case IBUS_Page_Up: | 69 case IBUS_Page_Up: |
63 case IBUS_KP_Page_Up: | 70 case IBUS_KP_Page_Up: |
64 if (self->inputMode==CHEWING_INPUT_MODE_BYPASS) | 71 if (self->inputMode==CHEWING_INPUT_MODE_BYPASS) |
65 return FALSE; | 72 return FALSE; |
66 IBUS_ENGINE_GET_CLASS(engine)->page_up(engine); | 73 IBUS_ENGINE_GET_CLASS(engine)->page_up(engine); |
67 break; | 74 break; |
68 case IBUS_Page_Down: | 75 case IBUS_Page_Down: |
69 case IBUS_KP_Page_Down: | 76 case IBUS_KP_Page_Down: |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 if (self->inputMode==CHEWING_INPUT_MODE_BYPASS) | 113 if (self->inputMode==CHEWING_INPUT_MODE_BYPASS) |
107 return FALSE; | 114 return FALSE; |
108 chewing_handle_End(self->context); | 115 chewing_handle_End(self->context); |
109 break; | 116 break; |
110 case IBUS_Tab: | 117 case IBUS_Tab: |
111 if (self->inputMode==CHEWING_INPUT_MODE_BYPASS) | 118 if (self->inputMode==CHEWING_INPUT_MODE_BYPASS) |
112 return FALSE; | 119 return FALSE; |
113 chewing_handle_Tab(self->context); | 120 chewing_handle_Tab(self->context); |
114 break; | 121 break; |
115 case IBUS_Caps_Lock: | 122 case IBUS_Caps_Lock: |
| 123 /* When Chi->Eng with incomplete character */ |
| 124 if (chewing_get_ChiEngMode(self->context) && !chewing_zuin_C
heck(self->context)){ |
| 125 /* chewing_zuin_Check==0 means incomplete character */ |
| 126 /* Send a space to finish the character */ |
| 127 chewing_handle_Space(self->context); |
| 128 } |
116 chewing_handle_Capslock(self->context); | 129 chewing_handle_Capslock(self->context); |
117 self_refresh_property(self,"chewing_chieng_prop"); | 130 self_refresh_property(self,"chewing_chieng_prop"); |
118 break; | 131 break; |
119 case IBUS_Shift_L: | 132 case IBUS_Shift_L: |
120 case IBUS_Shift_R: | 133 case IBUS_Shift_R: |
121 /* Some QT application will sneak these through */ | 134 /* Some QT application will sneak these through */ |
122 return FALSE; | 135 return FALSE; |
123 case IBUS_Alt_L: | 136 case IBUS_Alt_L: |
124 case IBUS_Alt_R: | 137 case IBUS_Alt_R: |
125 /* Some QT application will sneak these through */ | 138 /* Some QT application will sneak these through */ |
(...skipping 13 matching lines...) Expand all Loading... |
139 if (self->inputMode==CHEWING_INPUT_MODE_BYPASS) | 152 if (self->inputMode==CHEWING_INPUT_MODE_BYPASS) |
140 return FALSE; | 153 return FALSE; |
141 chewing_handle_ShiftLeft(self->context); | 154 chewing_handle_ShiftLeft(self->context); |
142 break; | 155 break; |
143 case IBUS_Right: | 156 case IBUS_Right: |
144 if (self->inputMode==CHEWING_INPUT_MODE_BYPASS) | 157 if (self->inputMode==CHEWING_INPUT_MODE_BYPASS) |
145 return FALSE; | 158 return FALSE; |
146 chewing_handle_ShiftRight(self->context); | 159 chewing_handle_ShiftRight(self->context); |
147 break; | 160 break; |
148 case IBUS_Up: | 161 case IBUS_Up: |
149 » » return FALSE; | 162 » case IBUS_KP_Up: |
150 case IBUS_Down: | 163 case IBUS_Down: |
| 164 case IBUS_KP_Down: |
| 165 case IBUS_Page_Up: |
| 166 case IBUS_KP_Page_Up: |
| 167 case IBUS_Page_Down: |
| 168 case IBUS_KP_Page_Down: |
| 169 case IBUS_Home: |
| 170 case IBUS_End: |
| 171 if (self->_priv->statusFlags & ENGINE_STATUS_NEED_COMMIT) |
| 172 self_force_commit(self); |
151 return FALSE; | 173 return FALSE; |
152 case IBUS_space: | 174 case IBUS_space: |
153 case IBUS_KP_Space: | 175 case IBUS_KP_Space: |
154 chewing_handle_ShiftSpace(self->context); | 176 chewing_handle_ShiftSpace(self->context); |
155 chewing_set_ShapeMode(self->context, !chewing_get_ShapeMode(self
->context)); | 177 chewing_set_ShapeMode(self->context, !chewing_get_ShapeMode(self
->context)); |
156 self_refresh_property(self,"chewing_alnumSize_prop"); | 178 self_refresh_property(self,"chewing_alnumSize_prop"); |
157 break; | 179 break; |
158 default: | 180 default: |
159 self_handle_Default(self,keysym,TRUE); | 181 self_handle_Default(self,keysym,TRUE); |
160 break; | 182 break; |
161 } | 183 } |
162 }else if (state==IBUS_CONTROL_MASK){ | 184 }else if (state==IBUS_CONTROL_MASK){ |
163 if (keysym>=IBUS_0 && keysym<=IBUS_9){ | 185 if (keysym>=IBUS_0 && keysym<=IBUS_9){ |
164 chewing_handle_CtrlNum(self->context,keysym); | 186 chewing_handle_CtrlNum(self->context,keysym); |
165 }else if (keysym==IBUS_v || keysym==IBUS_V){ | 187 }else if (keysym==IBUS_v || keysym==IBUS_V){ |
166 chewing_handle_Right(self->context); | 188 chewing_handle_Right(self->context); |
167 }else{ | 189 }else{ |
168 result=FALSE; | 190 result=FALSE; |
169 } | 191 } |
170 | 192 |
171 }else{ | 193 }else{ |
172 result=FALSE; | 194 result=FALSE; |
173 } | 195 } |
174 if (!result){ | 196 if (!result){ |
175 return FALSE; | 197 return FALSE; |
176 } | 198 } |
177 return self_update(self); | 199 return self_update(self); |
178 } | 200 } |
179 | |
OLD | NEW |