【问题标题】:Trigger resize event for an X window触发 X 窗口的调整大小事件
【发布时间】:2013-07-04 10:34:48
【问题描述】:

所以我有一个 X 窗口(属于另一个进程),我想触发该窗口的调整大小事件,最好不实际调整它的大小。

我的第一种方法是调整窗口大小两次,第二次又回到原来的大小,但我失败了。问题是有问题的窗口是全屏显示的,显然在这些窗口上调用XResizeWindowXMoveResizeWindow 没有任何作用(这在某种程度上是有道理的)。如果窗口不是全屏模式,它可以正常工作。
因为这只是为了快速测试,所以我开始想知道是否可以在 X 服务器中为该窗口伪造/注入调整大小事件。对于看起来很简单的 MS Windows,在谷歌搜索时找到了很多示例,但对于 X,我似乎不走运。

背景(无论如何人们可能会问;)):我正在全屏启动 VMware Player 实例,在某些情况下启动后,Windows 客户机不会根据主机更改它的分辨率(但主要是确实如此,这要归功于客户机上安装了 VMware Tools)。该虚拟机用于连接不同大小屏幕的多台机器上,因此我无法将图像预配置为具有正确的分辨率。目前,如果分辨率错误,用户会被告知退出并重新进入全屏,但这很不方便。所以我的想法是简单地告诉 VMplayer 它只是在启动后调整了大小,但也许有更好的方法......

【问题讨论】:

  • 强制窗口关闭全屏模式,然后再打开。您需要发送客户端消息,请参见示例,例如here.

标签: linux x11 xlib xorg


【解决方案1】:

使用XSendEvent 函数。它的存在正是出于这个原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 2016-10-31
    • 2023-03-10
    • 2010-12-21
    • 1970-01-01
    • 2014-04-06
    相关资源
    最近更新 更多