hallo,
habe das jetzt mal nachgeschaut und WM_DELETE_WINDOW ist kein
"predefined Atom".
Vieleicht ist das jetzt die Lösung:
Code:
#include <X11/Xlib.h>
#include <stdio.h>
#include <unistd.h>
#include <X11/Xatom.h>
int main(int argc, char **argv)
{
Window win;
Display *disp;
int ein;
Atom atom;
XEvent events;
disp = XOpenDisplay(NULL);
win =XCreateSimpleWindow(disp,DefaultRootWindow(disp),200,200,100,100,0,0,0);
XMapWindow(disp,win);
XFlush(disp);
atom=XInternAtom(disp,"WM_DELETE_WINDOW",True);
XSetWMProtocols(disp,win,&atom,1);
XSelectInput(disp,win,ClientMessage);
for (;;) {
XNextEvent(disp,&events);
switch (events.type) {
case ClientMessage:{
if(*XGetAtomName(disp, events.xclient.message_type) == *"WM_PROTOCOLS")
{
printf("Window zerstören? j \n");
ein=getc(stdin);
if(ein=='j') {
XDestroyWindow(disp,win);
return 1;
}
ein=getc(stdin);
}
}break;
}
}
return 1;
}
Hoffe das hilft
Lesezeichen