问题场景:
- 在Listary里设置了“动作” “用Notepad++编辑”,快捷键是Alt+E
- 我在用Notepad++写代码,需要打开一个文件,就用快捷键呼出Listary的全局搜索框
- 输入文件名,选中了文件,然后按Alt+E编辑它
期待结果:
- Notepad++打开此文件,且进入编辑模式,可以输入文字
现在的问题:
- Notepad++打开此文件,且进入平时按下-放开“Alt”键后的状态,第一个菜单项“文件(&F)”获得焦点
- 此时必须再“按下-放开”Alt键,才能使Notepad++的编辑区域获取焦点
分析:
- 测试在搜索框里长按Alt+E不放开,发现Listary立即调用了Notepad++
- 怀疑是Listary调用得太早了,而且调用后立即关闭了搜索框,使得Alt的keyup消息没被Listary接收,转给之后被激活的窗口了
我觉得可以试试改成:搜索框在keyup事件里判断是否“当前up的是E,且Alt键仍被按下”,然后记录下动作,等待所有此快捷键中的控制键(Alt / 可能的Ctrl)都被释放,才执行此动作。
作者辛苦了~