在以“全屏”模式运行的程序上,当我将“全屏”分辨率更改为低于桌面分辨率时,我可以通过将鼠标移动到屏幕边缘来滚动越过程序的边缘,然后看我的桌面。这确实是有问题的,而且实际上使我的系统崩溃了,而且非常烦人。
如何禁用此功能?我什至不知道它叫什么,除了这个 2003 年的未解答问题之外我找不到任何东西:https://www.linuxquestions.org/questions/linux-software-2/disabling-virtual-screen-mouse-scrolling-in-x-111237/
如果有人想看示例,那么您可以自己安装 SuperTux 2,将全屏分辨率更改为 640x480 之类的值,然后选中全屏框,然后将鼠标移动到屏幕边缘。
答案1
部分答案:
原因是最初X服务器的帧缓冲区大小是固定的。原因是 X 应用程序可能已向 X 服务器询问“屏幕”(帧缓冲区)大小,如果现在 X 服务器在背后更改它,它们将假定错误的大小。
因此,更改分辨率(通过更改模型行,例如使用 Ctrl-Plus 和 Ctrl-Minus)被实现为保持帧缓冲区相同的大小,并在帧缓冲区中提供一个视口。该视口会自动滚动。
确实没有办法“禁用”它。使用现代 X,您也可以用来xrandr
更改帧缓冲区大小(我想您可以将其绑定到热键)。但是,如果应用程序没有预料到这一点,并且不支持 RANDR 扩展,那么它们仍然可能会出现错误。
另一种选择是永远不要全屏运行应用程序,而是始终在窗口中运行它,根据需要调整该窗口的大小,并可能说服您的 WM 渲染该窗口而没有边框。设置起来可能有点困难。
我玩 SuperTux 已经很久了,而且它已经很老了,所以可能没有办法让它“正常”工作而不改变它的源代码。
答案2
答案3
看来您需要更改或重新配置窗口管理器。
一些信息让我得出这个结论......
对于 Xfce DE,我的窗口管理器是 Xfwm4。我按照您的建议安装并运行 SuperTux2 进行了测试,没有遇到您遇到的问题。
然后,从另一个方向看问题 - 也就是说,试图找出如何让我的系统做你的系统所做的事情 - 我发现以下帖子清楚地表明窗口管理器是问题的症结所在。 。寻找桌面环境将窗口分布在多个屏幕上
答案4
当我从 novaeu 视频驱动程序切换到 nvidia-304 时,我遇到了同样的问题。在那之前没有它。
我不明白上面的屏幕截图显示了什么,我在arandr 中没有复选框。
我通过在桌面文件执行命令行中设置supertux2前后的分辨率解决了这个问题:
xrandr --输出 VGA-0 --模式 640x480 && supertux2 && xrandr --输出 VGA-0 --模式 1920x1080