wylht
新手上路
新手上路
阅读:10329回复:13

高分屏下非Modern应用的光标跟随问题

楼主#
更多 发布于:2015-10-30 09:06
非常喜欢小小输入法。刚入手一台分辨率很高的Windows设备,很高兴看到小小输入法在高分屏下效果也不错(有些输入法如搜狗等,据同学说在高分屏下字小得瞎眼)







但是,在非Modern应用下,如果应用了系统显示设置中的“放大应用程序和文本”,光标跟随就无法正常工作。在Modern应用中无此问题。


我猜测,是因为Modern应用可以正常处理高分屏的坐标,所以系统返回的是真实屏幕坐标;而对于被系统放大200%的程序,返回的是一个虚拟坐标。







具体测试:


系统设置:程序放大200%情况下:


开始菜单、Edge浏览器以及一切Modern应用(又称Metro应用,Windows Store App)光标跟随正常。


QQ、notepad、Word等一切desktop应用候选窗都在闪了一下之后跳到奇怪的地方。







关闭系统放大,改为100%显示。虽然屏幕分辨率让人瞎眼,但是光标跟随正常工作了。


重要:由100%切换为200%时,系统提示需要重启完全生效。但是如果这时不重启,屏幕内容也已经放大,此时小小输入法是可以正常光标跟随的!这时可以同时享受放大的程序和光标跟随。重启完全生效后,光标跟随即故障。







关于小小输入法的其它问题:


1. 只有在系统默认语言为中文时可以安装成功。系统默认语言为英文时无法安装TSF内置。只能通过单击任务栏图标来使用输入法


2. 如果把系统由英文切为中文,重启生效之前安装小小输入法,可以安装成功,但是小小输入法被安装为一个“英文输入法”,除了被归类为英文键盘外,其它使用一切正常


3. 切换中文,重启生效之后再安装小小输入法,被安装为一个中文输入法,工作一切正常。


4. 只有安装时需要系统默认语言为中文,安装之后把系统默认语言切换为英文不影响输入法的使用。


5. 安装程序似乎不是Unicode程序,在非中文系统下会乱码,必须修改系统设置才能显示;但是安装程序的最后一屏,即使修改系统设置之后也不能显示,必须系统默认显示语言为中文才可显示,若为英文则显示一片空白。







附上系统和软件版本:


Win10 x64 EN-US Pro Build 10240


小小输入法:2.3.0-3
wylht
新手上路
新手上路
沙发#
发布于:2015-11-10 11:10
dgod:先解决光标跟随再说。如果支持了高分屏,很可能所有现在的皮肤都在高分屏下显示得很小了。回到原帖
感谢楼下的回复,我证明他说的是对的。如果右键yong.exe,属性中禁用在高DPI显示下的缩放,则候选框可以正常跟随,显示清晰不发虚。但是如您所言,这样设置的后果就是输入法皮肤小得不能看。附两张图说明清况。因为我的屏幕是高分屏,所以请参考图中其它文字和任务栏的大小判断我这里的显示效果。
wylht
新手上路
新手上路
板凳#
发布于:2015-11-10 11:00
dgod:先解决光标跟随再说。如果支持了高分屏,很可能所有现在的皮肤都在高分屏下显示得很小了。回到原帖
我再提一个有趣的现象:在Edge等可以正常跟随的程序里,候选框大小正常,而且显示细腻。在不能正常跟随的程序,比如notepad,候选窗大小正常,但是一看就是四个像素拼一个像素的样子(系统设置是200%放大)
wylht
新手上路
新手上路
地板#
发布于:2015-11-10 10:57
yanhuacuo:希望早日加入对高分屏的支持,高分屏下发虚现在。回到原帖
我没觉得我的发虚,可能是因为我是200%放大,正好四个像素拼一个像素,所以只是显得字体粗,但是依然清晰
erqie
新手上路
新手上路
4楼#
发布于:2015-10-31 01:18

图片:IMG_3144.JPG

没注意到这里还有一贴,我也说下我的情况。
我是高分屏,屏幕默认放大125%,好像是这个数字。
yong.exe不设置禁用DPI的话所有窗口是模糊的,我禁用DPI后就好了。
win10,x64。英文系统,只是把区域设置成了china,然后输入法没有设置什么默认不默认的,可能是系统自己定了一个。
现在在change your language preference这里英语是第一位,中文是第二位,中文里输入方法只有一个“Yong输入法”
目前除了firefox,在主屏跟分屏跟随正常。用的tsf里的64位安装脚本,启动程序是w64文件夹下的yong.exe。

PS:插入的照片怎么跑这个位置上去了?
5楼#
发布于:2015-10-30 12:38
yanhuacuo:希望早日加入对高分屏的支持,高分屏下发虚现在。回到原帖
先解决光标跟随再说。如果支持了高分屏,很可能所有现在的皮肤都在高分屏下显示得很小了。
6楼#
发布于:2015-10-30 12:36
dgod:英文系统应该没问题才对,可以看一下
http://yong.dgod.net/read.php?tid=217
http://yong.dgod.net/read.php?tid=624
tsf内置默认安装应该是安装到当前系统语言下的...
回到原帖
希望早日加入对高分屏的支持,高分屏下发虚现在。
wylht
新手上路
新手上路
7楼#
发布于:2015-10-30 11:21
dgod:你这些是内置还是外挂测的?还是两个都是一样的情况?
小小本身现在没有对高分屏特殊处理过,所以可以当vc6程序看。不过照这么看来,metro程序,你用到的那些也没对高分屏作过特殊处理。
可能是记事本之类的提供的是一个正确的坐标,小小用这个坐标...
回到原帖
外挂模式下无论是ModernUI应用还是桌面应用都不能光标跟随,而且候选窗的位置更加奇特以至于我还没找到规律。
桌面程序无论新旧,都是有时可以跟随,有时不能。规律不明。OneNote、IE、notepad大部分时候不可以。Outlook、资源管理器、和老爷VC6程序大部分时候可以。Modern应用一律不能跟随。
另外外挂模式下在有些程序中会乱码(包括office和老爷VC6程序)有些不会。
总体来说,表现更加不一致,但是相当一部分桌面程序变得可以跟随了。
8楼#
发布于:2015-10-30 11:10
wylht:都是在内置TSF模式下测试的。外挂等我测试一下。
测试过的Modern程序包括Edge、Windows Store等,都是近一年之内有过更新的。
回到原帖
tsf情况下,输入法得到的位置是应用通知tsf,再发给yong.exe,yong.exe移动候选窗位置。无论是nodepad.exe还是metro程序,到了yong.exe这儿都是一样的。所以只能是这两个给出的位置不是一个坐标系的,而metro程序给出的和yong.exe正好在相同。可能要改tsf模块了。
wylht
新手上路
新手上路
9楼#
发布于:2015-10-30 11:10
dgod:你这些是内置还是外挂测的?还是两个都是一样的情况?
小小本身现在没有对高分屏特殊处理过,所以可以当vc6程序看。不过照这么看来,metro程序,你用到的那些也没对高分屏作过特殊处理。
可能是记事本之类的提供的是一个正确的坐标,小小用这个坐标...
回到原帖
我觉得您说的很有可能。Win10的桌面程序应该是有两类,一类是旧程序,由系统做坐标变换的,这类程序感知到的显示器大小就是缩小之后的版本;一类是新程序,它们通知Win10自己可以处理好高分屏,系统为其提供真实坐标。
我猜搜狗输入法为了做到候选窗跟随,它是跟随程序变化的。当程序为原生高分屏支持程序时,它也通知系统不要缩放自己,这就造成了搜狗输入法在这些程序下光标虽然可以跟随,但是界面却小得没法看。
也许一个解决的办法是小小输入法可以在移动候选窗时侦知这种情况并据以将坐标等比缩小后再调系统API?我印象中windows现在似乎是有类似的系统API,但我不太确定。
从我个人来说,这并不影响使用,因为我可以盲打,少数时候才需要看候选窗。
上一页
游客

返回顶部