Commit 6488a72
fix: 优化输入法上下文刷新机制,彻底解决切换延迟问题
改进输入法切换后的上下文刷新策略,解决偶发的输入延迟问题(图标已切换但输入仍为旧输入法)。
主要改进:
1. 双重 TISSelectInputSource 调用
- 连续两次重新选择当前输入法(间隔3ms)
- 强制系统刷新输入法上下文
2. Function 键脉冲刷新
- 发送极短的 Fn 键按下-释放事件(0.5ms)
- Fn 键单独按下无副作用,不会干扰用户输入
- 触发系统输入上下文更新
3. 用户体验优化
- 完全避免应用焦点切换,无 UI 闪烁
- 刷新过程对用户完全无感知
- 总延迟仅约 8.5ms(3ms + 3ms + 2.5ms)
技术细节:
- 使用 hidSystemState 事件源确保事件被系统处理
- 选择 0x3F (Function 键) 作为刷新触发器
- 优化延迟时间平衡稳定性与响应速度
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>1 parent 68611d0 commit 6488a72
1 file changed
Lines changed: 32 additions & 17 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
181 | 181 | | |
182 | 182 | | |
183 | 183 | | |
184 | | - | |
185 | 184 | | |
186 | | - | |
187 | | - | |
188 | | - | |
189 | | - | |
190 | | - | |
191 | | - | |
192 | | - | |
193 | | - | |
194 | | - | |
195 | | - | |
196 | | - | |
197 | | - | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
198 | 216 | | |
199 | 217 | | |
200 | 218 | | |
201 | | - | |
202 | | - | |
203 | | - | |
204 | | - | |
| 219 | + | |
205 | 220 | | |
206 | 221 | | |
207 | 222 | | |
| |||
0 commit comments