linux - 将应用程序嵌入到窗口中

标签 linux unix x11 xlib motif

FvwmButtons(fvwm 窗口管理器的一个模块)具有 Swallow 功能,嵌入 将应用程序的窗口转换为面板。

我必须用 Motif 和 Xlib 做这样的事情。我想在我的应用程序中嵌入一个 Xclock。我想我必须更改嵌入式应用程序的窗口 ID。

我该怎么做?

最佳答案

唯一受支持且可靠的机制是XEmbed,但它需要嵌入式应用程序配合。如果没有协作应用程序,您将处于一个充满可怕黑客的世界。

您需要做的基本事情是 XReparentWindow(),但问题是您正在与窗口管理器作斗争,它也需要重新设置窗口的父级。您还可能混淆应用程序,该应用程序将期望 ICCCM 和 EWMH 行为,并期望父窗口是 WM 框架。

真正老的 GNOME 1.x 版本的 gnome 面板有一个 swallow 特性,你可以尝试从中窃取 hack。

如果没有相当广泛的 X 知识,这将是痛苦的,甚至 不一定能做到 100% 可靠。

关于linux - 将应用程序嵌入到窗口中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5395044/

相关文章:

c++ - 将监视器限制在 Linux 中的某个区域

unit-testing - 用于测试的假 X 服务器?

c - 使用 X11 访问自定义 XResources 颜色

linux - bash - 如何按字数将长字符串分成多个字符串

linux - 如何在启用调试信息的情况下编译紧凑的 vnc?

linux - Linux/x86_64 上跨进程共享内存

C:如何使用 mount(2) 挂载用 mkfs 创建的常规文件系统?

linux - 如何使用 Sed 搜索将整个单词替换为文件中的字符串匹配项

c - 如何创建一个用完所有分配内存的函数

c++ - 如何从 std::ofstream 获取文件 ID