如何禁用全屏鼠标滚动?

如何禁用全屏鼠标滚动?

在以“全屏”模式运行的程序上,当我将“全屏”分辨率更改为低于桌面分辨率时,我可以通过将鼠标移动到屏幕边缘来滚动越过程序的边缘,然后看我的桌面。这确实是有问题的,而且实际上使我的系统崩溃了,而且非常烦人。

如何禁用此功能?我什至不知道它叫什么,除了这个 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

我认为 ArandR 可以帮助你解决这个问题。这是我的演示:

这是我正常工作的正常桌面,DP-1将是本演示的主题。 正常桌面工作正常

这里我打开了SuperTux2。 SuperTux2 在我的机器上显示为全屏,但这就是它在我的屏幕截图工具中的显示方式。 SuperTux2 全屏

这就是在 SuperTux2 外部单击对我的桌面所做的操作。 破碎的桌面

使用 ArandR 我们可以重置桌面的分辨率。只需单击左上角的复选框即可将其设置回我的原始配置。 ArandR 带有突出显示的复选框

中提琴!我们回来了,一切又恢复正常了。 ArandR 将桌面转换为正常分辨率

您可以使用 XrandR 在终端中手动配置它,但我认为在这种情况下这会花费更多的精力。

我还应该指出,(好的)窗口管理器应该处理这种分辨率更改而不会崩溃。如果分辨率更改导致您的计算机崩溃,您可能需要升级窗口管理器。

答案3

看来您需要更改或重新配置窗口管理器。

一些信息让我得出这个结论......

对于 Xfce DE,我的窗口管理器是 Xfwm4。我按照您的建议安装并运行 SuperTux2 进行了测试,没有遇到您遇到的问题。

然后,从另一个方向看问题 - 也就是说,试图找出如何让我的系统做你的系统所做的事情 - 我发现以下帖子清楚地表明窗口管理器是问题的症结所在。 。寻找桌面环境将窗口分布在多个屏幕上

答案4

当我从 novaeu 视频驱动程序切换到 nvidia-304 时,我遇到了同样的问题。在那之前没有它。

我不明白上面的屏幕截图显示了什么,我在arandr 中没有复选框。

我通过在桌面文件执行命令行中设置supertux2前后的分辨率解决了这个问题:

xrandr --输出 VGA-0 --模式 640x480 && supertux2 && xrandr --输出 VGA-0 --模式 1920x1080

相关内容