淘宝网站开发实训报告,苏州专业网站建设开发,怎么选择合肥网站建设,茂名建站公司问题描述#xff1a;概率性长按键盘无法连续输入文本
问题定位#xff1a;
系统按键流程分析
图一 系统按键流程
按键是由X Server接收的#xff0c;这一点只要明白了X Window的工作机制就不难理解了。X Server在接收到按键后#xff0c;会转发到相应程序的窗口中。在窗…问题描述概率性长按键盘无法连续输入文本
问题定位
系统按键流程分析
图一 系统按键流程
按键是由X Server接收的这一点只要明白了X Window的工作机制就不难理解了。X Server在接收到按键后会转发到相应程序的窗口中。在窗口的处理函数中可以选择是否响应按键等这里假定窗口是可输入的。这时窗口将收到的按键回传给X Server询问X Server关于XIM Server的相关信息。倘若输入法是打开的。X Server会将事件发送给XIM Server也就是输入法去处理。XIM Server通过某种方式例如查码表将按键转换成特定的字符串之后返回给X ServerX Server得到字符串后再通知窗口输出字符串。
搜狗输入法输入法介绍
搜狗输入法CS模型
图二 搜狗输入法CS模型
fcitx输入法框架接受到按键事件传给注册的fcitx搜狗输入法模块即sogouimeclientSogouimeclient通过sogouIPC传给sogouimeservice,soouimeservice收到消息处理完后返回消息给sogouimeclient
搜狗输入法按键流程
图三 搜狗输入法按键流程
现场测试验证发现出现这种情况时是开了多个vnc远程桌面服务导致通过反复测试测试发现输入法在多vnc服务远程桌面情况下存在watchdog检查失败导致误关闭/opt/sogouimebs/files/bin/sogouImeService进程如图三所示如果sogouimeservice进程不存在则无法回复IPCpostMessage给sogouimeclient sogouimebsclient则不会及时反馈给app则表现为不能连续按键。 问题解决方案 如上代码段pidof sogouImeService的结果在vnc下会有多个进程之前只考虑了非vnc情况任务多的进程是异常所以会杀死。通过修订搜狗输入法watchdog检查逻辑支持vnc多桌面情况解决该问题输入法版本号为sogouimebs_2.3.0.2793_amd64.deb