gpt4 book ai didi

linux - 使用 XGrabServer 抓取 X 服务器

转载 作者:太空狗 更新时间:2023-10-29 12:08:25 26 4
gpt4 key购买 nike

在嵌入式 Linux 系统中,我试图显示关闭通知,该通知在关闭时应覆盖任何其他窗口。现在创建窗口不是问题,但可靠地显示窗口是问题。 X 服务器或 WM 不知何故太忙,无法每次都绘制通知。考虑到我们的 CPU 能力有限,这并不奇怪。

因此,我认为我可以通过使用 gdk_x11_grab_server()(在默认显示上调用 XGrabServer)获取 X 服务器来简化 WM/X。但是我什么时候应该调用 grab func?如果我在构建我的窗口之前调用它,在我的窗口的暴露事件中显示我的窗口或事件之前,屏幕上不会绘制任何内容(即使在空载测试中)!

documentation说:

The XGrabServer function disables processing of requests and close downs on all other connections than the one this request arrived on.

我想这意味着应该只处理来 self 的应用程序的请求,但似乎并非如此,因为如果 X 被我的应用程序抓取,则不会绘制任何内容。

那么,应该如何以及何时使用获取 X 服务器来实现想要的结果,或者它是一个完全错误的工具并且我误解了它的使用(或者试图使用它的级别太高了)让它真正发挥作用)。

最佳答案

我猜想没有绘制任何东西,因为您正在打开一个普通的顶级窗口,在这种情况下,窗口管理器需要在它可见之前对其进行操作;然而,您已经通过调用 XGrabServer() 锁定了窗口管理器。

您可以尝试在窗口上设置 OverrideRedirect,它告诉 X 服务器窗口管理器根本不应该与该窗口有关。这也具有从窗口中删除任何装饰(标题栏、关闭按钮等)的效果,这很可能是您想要的关闭通知。

关于linux - 使用 XGrabServer 抓取 X 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1107989/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com