Handle WM_DELETE_WINDOW messages correctly, thanks to fungt

This commit is contained in:
Bert 2011-02-09 10:01:49 +01:00
parent a5335e8ddd
commit d731741f04
3 changed files with 11 additions and 1 deletions

4
main.c
View file

@ -475,6 +475,10 @@ void run() {
timeout = 1;
}
break;
case ClientMessage:
if ((Atom) ev.xclient.data.l[0] == wm_delete_win)
return;
break;
}
}
}

View file

@ -28,9 +28,10 @@
static Cursor arrow;
static Cursor hand;
static GC bgc;
Atom wm_delete_win;
void win_set_sizehints(win_t *win) {
XSizeHints sizehints;
@ -123,6 +124,9 @@ void win_open(win_t *win) {
XMapWindow(e->dpy, win->xwin);
XFlush(e->dpy);
wm_delete_win = XInternAtom(e->dpy, "WM_DELETE_WINDOW", False);
XSetWMProtocols(e->dpy, win->xwin, &wm_delete_win, 1);
if (options->fullscreen)
win_toggle_fullscreen(win);
}

View file

@ -53,6 +53,8 @@ typedef struct win_s {
unsigned char fullscreen;
} win_t;
extern Atom wm_delete_win;
void win_open(win_t*);
void win_close(win_t*);