I know, that I can 'close' an X11 Window by calling:
XDestroyWindow(display, id);
The problem is, this destroyes the window immediately. On the other hand, if i click the close button (x in the title bar) the app can show something like "Do you really want to exit?".
So how can I emulate this type of window closing?
Background: I am closing windows from other applications, not my own
I found a solution:
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);
Where d
is the display handle and id
is the window ID.