扩展热键的问题

BUG反馈 · 978 次浏览
seabirdr 创建于 2020-06-07 11:47

这个问题在过去一段时间被报告多次,但一直没有解决。由于出现率高,影响大,冒失的再提出一次,希望能引起重视。📣

🔸问题描述:

设置「Capslock」为特殊控制键,取消勾选「单独按此按键时,保持其原有功能」,「C」为复制,先按住「Capslock」再按「C」,一切正常。

但若先按到「C」或别的字母再按「Capslock」,「Capslock」的原有功能就恢复了,会对用户的操作产生困扰😕。用户主观上不会故意先按「C」再按「Capslock」,出现此状况多为快速输入中的误触发,实际使用中,误触率蛮高的。

💡可能的解决方案:

用户取消勾选「单独按此按键时,保持其原有功能」,只有先按住「Ctrl」或者「Alt」、或者用户设置的一个键再按「Capslock」,才能触发「Capslock」原有的功能。除此之外的按键按下,再按「Capslock」不能触发其原有功能。

另外,想问一下,此问题是否在解决当中,或是否有解决的计划;如果没有,作为用户可能要寻求其他的办法或工具来完成此功能,谢谢!


回复内容
CL 2020-06-07 12:31
#1

是指在按Capslock的时候,有其他键处于按下状态?

明白了,我之前一直以为在按完其他键之后抬起再按caps,所以一直没法复现。

我试试处理一下。

seabirdr 2020-06-07 12:55 :

是的,误触是因为打字过程中在按下「Capslock」的瞬间,敲击上一个按键的手指还没完全抬起,该按键还处于按下状态。

CL 2020-06-07 12:53
#2

加了一个判断,如果又其他键按下的时候,会忽略一下控制键。

这会产生另外一个问题,在按下其他键的时候按下caps,如果单纯取消caps键入,就无法响应原有的目的。

原有的目的是要按热键么?

这时候如果把caps当作扩展热键处理,如果之前按下的键抬起了,可能就又触发了错误的热键。

seabirdr 2020-06-07 13:01 :

如果我没理解错的话,其他按键处于按下状态,直接取消「Capslock」,这样用户需要重新按一次「Capslock」,恐怕不太好。

我想到的办法是直接完全禁掉「Capslock」的原有功能,而不是忽略一次。只允许用另一个热键(比如「Ctrl+Capslock」)来实现它的原有功能,不知是否可行,供参考。

seabirdr 2020-06-07 13:06 :

也就是说,只要“capslock”按下,它原有功能“大小写切换”永远不再起作用,但是扩展热键的功能永远有用。

这样其他键按下,再按“capslock”,不会切换大小写,不干扰用户。

此时,按下的“capslock”是有效的,松开第一个按键,再按下“c”键,触发“复制”功能。

CL 回复 seabirdr 2020-06-07 13:10 :

如果是这样的顺序: a down, caps down, a up,  虽然目的只是按下caps(等再按下下一个键),但在a抬起的时候,就满足了caps+a的这个组合键触发条件。

seabirdr 回复 CL 2020-06-07 13:17 :

这样恐怕也不行,假如用户绑定了 「Caps+A」为全选,他原目的是按「Caps+C」,这样会触发全选。按下「Capslock」之前的键要忽略掉才行。

CL 回复 seabirdr 2020-06-07 13:54 :

嗯,应该是这样。不过感觉实现起来有些困难,等再研究下看看了。

seabirdr 回复 CL 2020-06-07 14:28 :

辛苦了🍗加鸡腿

回复主贴