【发布时间】:2016-12-17 20:13:16
【问题描述】:
我知道,我可以通过调用“关闭”一个 X11 窗口:
XDestroyWindow(display, id);
问题是,这会立即破坏窗口。另一方面,如果我点击关闭按钮(标题栏中的 x),应用程序会显示类似“你真的要退出吗?”。
那么我怎样才能模拟这种类型的窗口关闭?
背景: 我正在关闭其他应用程序的窗口,而不是我自己的
【问题讨论】:
我知道,我可以通过调用“关闭”一个 X11 窗口:
XDestroyWindow(display, id);
问题是,这会立即破坏窗口。另一方面,如果我点击关闭按钮(标题栏中的 x),应用程序会显示类似“你真的要退出吗?”。
那么我怎样才能模拟这种类型的窗口关闭?
背景: 我正在关闭其他应用程序的窗口,而不是我自己的
【问题讨论】:
我找到了解决办法:
XEvent event;
event.xclient.type = ClientMessage;
event.xclient.window = id;
event.xclient.message_type = XInternAtom(d, "WM_PROTOCOLS", TRUE);
event.xclient.format = 32;
event.xclient.data.l[0] = XInternAtom(d, "WM_DELETE_WINDOW", FALSE);
event.xclient.data.l[1] = CurrentTime;
XSendEvent(d, id, False, NoEventMask, &event);
其中d 是显示句柄,id 是窗口 ID。
【讨论】:
【讨论】: