wiliwili
wiliwili copied to clipboard
windows11下全屏显示盖住虚拟键盘
我使用了第三方程序手势拉起键盘。看不到但是按到相应位置wiliwili会识别到输入
22h2 22621.1928
wiliwili 1.0.1
我在win11下通过从屏幕底部向上滑动呼出任务栏,进而打开虚拟键盘,这么操作是没问题的。 会不会问题来自这个第三方唤起的程序呢?
有可能 我用的是Store里的TouchMe
uwp版本不会挡 但是uwp似乎不支持虚拟键盘输入
你可以先试试我说的那个方式有没有问题
抱歉,不小心给关闭了,重新开启
你可以先试试我说的那个方式有没有问题
抱歉,不小心给关闭了,重新开启
~~我的设备上不同呼出方式结果类似~~
再试了一次,用任务栏呼出可以正常使用了。
也许将wiliwili在windows平台的全屏方式改为窗口化全屏会更好一些
也许将wiliwili在windows平台的全屏方式改为窗口化全屏会更好一些
我对windows下全屏的区别不是很了解,请问一下
- wiliwili目前使用的是什么方式的全屏方案
- 如何在windows下判断一个应用使用了什么全屏方式
- windows下一共有多少种全屏方式, 为什么wiliwili应该选择某一种方式
- wiliwili目前使用的是独占全屏
- 如果只要窗口焦点离开全屏应用(例如按下windows徽标键),就会造成显示器重连(黑屏再恢复),即为独占全屏。反之,如果按windows徽标键不会导致黑屏,则是通过创建一个与屏幕相同大小,坐标为0,0的无边框窗口来实现的窗口化全屏。
- windows下粗略来说有两种全屏实现方式:不受DWM管理的独占全屏和受DWM管理的窗口化全屏。在win10之前的系统,独占全屏具有性能优势,但是在win10及之后,两者的性能差距很小,并且独占全屏会导致开启关闭全屏时或切换焦点时显示器重连,黑屏一秒钟左右,很影响体验,因此我认为wiliwili使用窗口化全屏,使用起来会更方便。以下是典型的体验优化场景: a. 开启和关闭全屏时 b. 具有多个显示器,其中一个运行wiliwili时 c. 全屏使用wiliwili,想在前台开启窗口应用时
@domexie 感谢回复,我最近一段时间手头没有windows设备来测试,但是感觉好像在之前我的电脑上没有出现类似的情况。
wiliwili 同时支持GLFW和SDL2来创建窗口,默认使用的是GLFW。全屏相关的代码在:https://github.com/xfangfang/borealis/blob/6cf1fe70000d1db9ccceb50d93ef5eab20c7d9c6/library/lib/platforms/glfw/glfw_video.cpp#L506
可以对照GLFW的文档看看怎么创建需要的窗口模式。
同时也可以切用SDL2看看有没有改善,在cmake时添加 -DUSE_SDL2=ON 即可切换。SDL2 全屏相关的代码在:https://github.com/xfangfang/borealis/blob/6cf1fe70000d1db9ccceb50d93ef5eab20c7d9c6/library/lib/platforms/sdl/sdl_video.cpp#L407
因为wiliwili支持的平台比较多,我确实没有太充裕的时间去维护各个平台的这些小细节,感兴趣的话欢迎测试修改提交PR。
抱歉,花了一些时间修改代码调试之后,我发现wiliwili目前的全屏方式属于GLFW文档中的“Windowed full screen”,在没有显示器开启HDR模式时确实不会黑屏。但是如果有开启HDR功能的显示器,似乎是因为色域不同的原因,video mode发生改变,实际上进入了独占全屏,因此会出现我上面提到的问题。如果想要彻底不黑屏,需要将全屏方式改为Borderless window(我上一条comment里面说的窗口化全屏实际上是这个)