3

我创建了一个使用 XCreateWindow 创建窗口的程序。这在我的系统和许多其他系统上完美运行,但在许多系统上,它会导致一些奇怪的问题。例如,我从中获得的 ID 与启动程序的终端的 ID 冲突。在一种这样的情况下,gnome-terminal 的窗口 ID 也为 0x2400001(父级为 root),而我的程序的窗口 ID 也是 0x2400001(其父级也是 root)。有什么建议可能会出错吗?

4

3 回答 3

0

除了其他答案:运行xwininfo -root -all(阅读其手册页以获取更多信息)。检查 gnome-terminal 窗口 ID 和您的应用程序的窗口 ID。

于 2012-03-22T14:24:19.940 回答
0

Xserver 为每个窗口创建一个唯一的不透明 ID。您用于识别窗口 id 的方法可能是错误的。

您的问题是另一个问题的症状。你真正想解决什么问题?

于 2009-05-16T13:14:00.783 回答
0

窗口 ID 可能仅在与 X 服务器的每个连接中是唯一的(即连接到 X 服务器的不同进程可能获得相同的窗口 ID,并且 X 服务器使用连接和窗口 ID 在内部将它们分开)。

我认为 X 没有对窗口 id 做出任何承诺,例如它们在进程或任何东西中都是唯一的,因此最好不要尝试将它们用于任何其他目的。

看到 X 实现只返回连续数字作为窗口 id 并以每个连接的相同值(例如 1)开头,我不会感到惊讶,这可以解释您的体验,例如每个客户端中的第一个窗口似乎具有相同的窗口 id在那个 X 实现上。

于 2009-05-02T16:44:21.280 回答