所以我有一个 X 窗口(属于另一个进程),我想触发该窗口的调整大小事件,最好不要实际调整它的大小。
我的第一个方法是只调整窗口大小两次,第二次恢复到原来的大小,但我失败了。问题是有问题的窗口全屏显示,显然调用 XResizeWindow
或 XMoveResizeWindow
没有任何作用(这在某种程度上是有意义的)。如果窗口未处于全屏模式,它工作正常。
因为无论如何这只是为了快速测试,我开始想知道是否有可能在 X 服务器中为该窗口伪造/注入(inject)调整大小事件。对于 MS Windows,这似乎很容易,在谷歌搜索时找到了很多示例,但对于 X,我似乎运气不好。
背景(反正人们可能会问 ;)):我正在全屏启动 VMware Player 实例,在某些情况下启动后,Windows 客户机不会根据主机更改其分辨率(但主要是可以,这要归功于客户机上安装的 VMware 工具)。该 VM 在连接了不同尺寸屏幕的多台机器上使用,因此我无法将图像预先配置为具有正确的分辨率。目前,如果分辨率错误,用户会被告知退出并重新进入全屏,但这非常不方便。所以我的想法是简单地告诉 VMplayer 它只是在启动后调整了大小,但也许有更好的方法......
最佳答案
使用XSendEvent功能。它的存在正是出于这个原因。
关于linux - 触发 X 窗口的调整大小事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17468078/