Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
FvwmButtons(fvwm 窗口管理器的一个模块)具有 Swallow 功能,将应用程序的窗口嵌入到面板中。
我必须用 Motif 和 Xlib 做这样的事情。我想在我的应用程序中嵌入一个 Xclock。我想我必须更改嵌入式应用程序的窗口 ID。
我怎样才能做到这一点?
唯一受支持且可靠的机制是 XEmbed,但它需要嵌入式应用程序配合。如果没有合作的应用程序,您将进入一个可怕的黑客世界。
您需要做的基本事情是 XReparentWindow() 但问题是您正在与窗口管理器作斗争,它也想要重新设置窗口的父级。您还可能会混淆应用程序,它会期望 ICCCM 和 EWMH 行为,并期望父窗口是 WM 框架。
真正旧的 GNOME 1.x 版本的 gnome 面板有一个吞咽功能,你可以尝试从中窃取黑客。
如果没有相当广泛的 X 知识,这将是痛苦的,即使有,也不一定能做到 100% 可靠。
看起来您正在寻找XEmbed协议,记录在此处。