◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
很多老用户对极点五笔有感情,用了十几年,手感刻在肌肉里,换别的输入法怎么都不顺手。可自从升到 Win10,问题就来了——尤其在 360 浏览器里打字,简直让人抓狂。

于是出现两个特别恶心人的毛病。第一个是:候选词窗口不置顶。你正在网页输入框里打字,候选窗一冒出来,却被别的窗口、页面元素甚至浏览器自己的界面压在了下面,明明选了字,却看不见候选。
第二个更过分:候选窗会漂移到屏幕左上角。你本来在网页中间打字,候选窗好好地跟在光标附近;可只要你切出去、再切回来,或者在窗口之间来回点几下,那个候选窗就“啪”地一下跑到了屏幕最左上角的位置,跟你正在打字的地方隔了十万八千里。
怪就怪在——在记事本、Word 里一切正常,唯独浏览器里犯病。这到底是极点的锅,还是浏览器的锅?别急,接下来我们就顺着线索,把这个折磨人的问题漂亮地解决掉,而且最后用的方法,既不用你忍受性能损失,也不用你换输入法。看到最后你会发现,真正的凶手,其实一直藏在一个你根本想不到的地方。
先说结论(给赶时间的人)
问题出在 Chromium 内核浏览器(360 安全浏览器、Edge 等)身上,罪魁祸首是一个叫 CalculateNativeWinOcclusion(窗口遮挡计算)的特性。只要在浏览器快捷方式的启动参数里禁用它,候选窗不置顶和漂移到左上角这两个问题,一次性全部解决,而且完全不影响浏览器的硬件加速性能。
一、先分析原因:为什么偏偏是浏览器?
要理解这个问题,得先搞清楚极点五笔“怎么知道该把候选窗画在哪”。
极点五笔是个有年头的老输入法内核。当你打字时,它需要向操作系统(准确说是 TSF 文本服务框架)询问一件事:“当前光标在屏幕上的哪个位置?”拿到这个坐标,它才能把候选窗画在光标下方,实现“光标跟随”。
记事本、Word 这类程序是原生的 Windows 程序(GDI 绘制),它们老实可靠地把光标在屏幕上的真实坐标回报给输入法,所以极点拿到的位置永远是准的——候选窗乖乖跟着光标走。
但 360 浏览器、Edge 用的是 Chromium 内核,情况完全不同。Chromium 的页面是靠 GPU 硬件加速合成渲染的,为了性能,它的很多计算都是“异步”的。它内部有一个“窗口遮挡计算”特性和 GPU 合成机制配合工作,在切换窗口的时候,这个机制会重新计算窗口的可见性。问题就出在这一刻:切换窗口时,Chromium 回报给输入法内核的光标坐标,有时会被错误地“归零”,变成了左上角的 (0,0)。
极点五笔是个老内核,拿到坐标后不做校验,直接就用——(0,0) 在屏幕左上角,于是候选窗就被画到了屏幕左上角。至于“候选窗不置顶”,也是同一套机制下的连带问题:窗口的层级与可见性计算错乱,导致候选窗没有被正确置顶。
所以你看,问题在浏览器,不在极点。这也是为什么改极点自己的配置文件(比如 ForceFollow、CandFollowCursor)根本没用——因为报错的坐标是从浏览器那边传过来的,极点改配置也治不了别人的病。
二、两种解决方案
方案一:关闭 360 浏览器的硬件加速(能解决,但不推荐)
既然问题出在 GPU 硬件加速合成这条路径上,那么最直接的思路就是——把硬件加速关掉,让浏览器退回到 CPU 软件渲染的同步路径,坐标就正常了。
操作步骤:打开 360 浏览器,进入设置,找到“硬件加速”相关开关,关闭它,然后重启浏览器。
关了之后你会发现,候选窗不漂移了,也正常置顶了,问题确实解决了。
但这不是长久之计,代价不小:关掉硬件加速,等于让浏览器放弃显卡,改用 CPU 来干所有渲染的活。你能明显感觉到的差别有:网页滚动、动画不再丝滑,尤其是图片多、内容长的页面,会有轻微卡顿感;看高清视频更耗电、更容易发热,笔记本续航变差、风扇更容易转;复杂网页应用(在线设计、地图、网页游戏)会明显掉帧。换句话说,你是牺牲了整个浏览器的流畅度,来换一个候选窗的位置。这笔账,不划算。
所以,硬件加速关闭法只适合用来验证问题根源(测试成本低,测完可以马上开回来),不适合当成日常方案。
另外要特别提醒:千万不要用“兼容模式”来解决。虽然理论上兼容模式(IE 内核)下老输入法可能正常,但现在绝大多数网页在兼容模式下根本无法正常打开或显示错乱,得不偿失。
下面还有更精准的做法——
方案二:修改 360 浏览器快捷方式,添加启动参数(推荐,一步到位)
既然根本原因是那个“窗口遮挡计算”特性在切换窗口时会错误归零坐标,那我们不用动硬件加速,只需要单独把这个特性禁掉就行了。这就是本文的核心解法。
操作步骤如下:
第一步:找到 360 浏览器的快捷方式(一般是桌面上的那个图标),在它上面右键,选择“属性”。
第二步:在弹出的属性窗口里,找到“目标”那一栏。它现在大概长这样(这里以常见安装路径为例):
"C:\Program Files (x86)\360se6\Application\360se.exe"
注意:如果你的 360 浏览器是安装到用户目录下的(比如个人电脑上常见的情况),“目标”栏里的路径可能是没有双引号的,长这样:
C:\Users\用户\AppData\Roaming\360se6\Application\360se.exe
第三步:在原来的内容后面,先加一个空格,再把下面这串参数加到最后。参数一定要写在原路径(以及原路径后面的闭合双引号)的外面。
如果原来的路径是带双引号的,就改成这样:
"C:\Program Files (x86)\360se6\Application\360se.exe" --disable-features=CalculateNativeWinOcclusion
如果原来的路径是不带双引号的,就直接在后面加空格和参数:
C:\Users\用户\AppData\Roaming\360se6\Application\360se.exe --disable-features=CalculateNativeWinOcclusion
第四步:点“确定”保存,然后把 360 浏览器完全退出(任务栏也退干净)再重新打开,参数才会生效。
搞定。现在去网页输入框里用极点打字,再切换窗口试试——候选窗不置顶和漂移到左上角的问题,应该都消失了。而且,硬件加速保持开启,浏览器的丝滑流畅一点没损失。
几个容易踩的坑,务必注意:
1. 参数一定要写在原路径的外面,前面留一个空格。如果你不小心把参数写到双引号里面,系统会把整串东西当成“路径”,提示你路径无效——这是最常见的错误。
2. 参数是加在快捷方式上的,不影响浏览器本体。
3. 改的是哪个快捷方式,就从哪个图标启动才生效。如果你平时是从任务栏或开始菜单点开的,建议把它们也一并改掉,或者干脆从改好的桌面图标启动。
三、一点补充说明
为什么推荐方案二,而不是方案一?一句话概括:方案一是“为了治头疼直接把头砍了”,方案二是“精准切除病灶”。方案二完全不牺牲性能,是真正意义上的解法。
那 Edge 浏览器管用吗?实测下来,同一个参数在 Microsoft Edge 上无效。原因是 Edge 虽然也是 Chromium 内核,但额外套了一层 Windows 集成层,实现和 360 不完全一样。不过如果你平时主力就是 360,这一条完全可以忽略。
总结一下:极点五笔在 Win10 的 360 浏览器里候选窗不置顶、漂移到左上角,根因不是极点,而是 Chromium 的窗口遮挡计算加 GPU 合成在切换窗口时把光标坐标错误归零。关闭硬件加速能解决但拖累性能,用兼容模式更不可取(很多网页在兼容模式下压根打不开);最佳方案是给 360 浏览器快捷方式加上 --disable-features=CalculateNativeWinOcclusion 参数——一次设置,永久有效,性能零损失。
愿每一个还在坚持用极点五笔的人,打字愉快。
