diff --git a/src/xlib.c b/src/xlib.c index 07b50d6..4e2a9f7 100644 --- a/src/xlib.c +++ b/src/xlib.c @@ -1,4 +1,5 @@ +#include #include #include #include @@ -24,6 +25,7 @@ static Display *display; static int screen; static Window window; static GC gc; +static Atom delwin; static int xfd; @@ -181,8 +183,11 @@ void backend_init(){ screen = DefaultScreen(display); window = XCreateWindow(display, DefaultRootWindow(display), 0, 0, 640, 480, 0, DefaultDepth(display, screen), InputOutput, CopyFromParent, 0, NULL); + XStoreName(display, window, "meh"); backend_setaspect(1, 1); gc = XCreateGC(display, window, 0, NULL); + delwin = XInternAtom(display, "WM_DELETE_WINDOW", False); + XSetWMProtocols(display, window, &delwin, 1); XSelectInput(display, window, StructureNotifyMask | ExposureMask | KeyPressMask); XMapRaised(display, window); @@ -249,6 +254,9 @@ void handleevent(XEvent *event){ } } break; + case ClientMessage: + key_quit(); + break; case Expose: if(curimg){ curimg->state &= ~DRAWN;