Linux窗口pipe理器强制窗口大小/位置

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

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

这里的开发人员花了数天的时间search并试图寻找一种以编程方式解决这种行为的方法,或者更好地告诉窗口经理停止这样做。 我们正在使用GNOME桌面和Qt 4.8.x.

有任何想法吗?

谢谢Doug McGrath