4

我们使用的是 Red Hat Linux 6.4,我们的应用程序是使用 Qt 构建的。该应用程序有多个窗口,我们支持布局系统,我们的用户可以保存应用程序布局并在以后恢复它。该应用程序是跨平台的,在 Windows 上,一切都很好。在 Linux 上,当一个窗口跨越多个监视器时,我们在恢复窗口时遇到了问题。我们的配置使用跨越所有显示器的单个虚拟 X 显示器,用户可以根据需要在显示器上手动定位和调整窗口大小。

我们发现,窗口管理器正在对以编程方式设置的窗口执行一项策略,并强制它们不要跨越两个监视器之间的鸿沟。当我们尝试恢复包含跨越监视器的窗口的已保存布局时,窗口管理器会减小其大小并重新定位它认为合适的位置。基本上,只要用户通过拖动和调整窗口大小进行更改,窗口管理器就会尊重它,但是以编程方式设置它的应用程序会被覆盖。我敢肯定有人认为这是一个合理的限制,但我们的客户不同意。

这里的开发人员花了几天时间搜索和试验,试图找到一种以编程方式解决此行为的方法,或者更好的是,告诉窗口管理器停止这样做。我们使用 GNOME 桌面和 Qt 4.8.x。

有任何想法吗?

谢谢你,道格·麦格拉思

4

0 回答 0