我正在尝试为X11制作一个xlib托盘栏,它使用XEMBED嵌入托盘图标,如tray specs中所述。但是,当我用托盘图标关闭应用程序时,它只是将它从容器窗口中移除,但黑色容器窗口矩形和我的代码中的条目仍然存在。检查重新关闭的窗口关闭事件
它是嵌入有责任让所有转发 加速器的轨道,当客户端窗口模具将其删除。
但是,当嵌入式窗口死亡时,我的应用程序没有得到任何事件或指示。
我基本上只会收到一个码头请求事件,其他事情都没有。当码头请求事件进来我创造了我的面板子窗口包含托盘窗口,重新设置父级是这样的:
enum trayIconSize = 24; // dimensions of icon
icon.trayWindow = XCreateWindow(x.display, panel.window, 0, 0, ...);
icon.ownerHandle = event.data.l[2]; // window id of icon which wants to dock
XReparentWindow(x.display, icon.ownerHandle, icon.trayWindow, 0, 0);
XMoveResizeWindow(x.display, icon.ownerHandle, 0, 0, trayIconSize, trayIconSize);
它添加到面板厂,没有任何问题,但我不知道该怎么检查何时再次移除它。
如何让我的应用程序接收关闭这些托盘图标的事件,或者如何检查重新设置的窗口是否仍然存在?