Event loop

This commit is contained in:
NaiJi ✨ 2026-06-07 00:23:58 -04:00
parent d3371da3fc
commit 05eac82d7e

27
main.c
View File

@ -1,6 +1,7 @@
#include <stdio.h>
#include <unistd.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
int main()
{
@ -10,7 +11,31 @@ int main()
XMapWindow(display, window);
XFlush(display);
for(;;) { sleep(1); }
Atom WM_DELETE_WINDOW = XInternAtom(display, "WM_DELETE_WINDOW", False);
if(!XSetWMProtocols(display, window, &WM_DELETE_WINDOW, 1))
{
printf("Couldn't register WM_DELETE_WINDOW property \n");
}
int is_open = 1;
while(is_open)
{
XEvent general_event = {};
XNextEvent(display, &general_event);
switch(general_event.type)
{
case ClientMessage:
{
XClientMessageEvent *event = (XClientMessageEvent *) &general_event;
if((Atom)event->data.l[0] == WM_DELETE_WINDOW) {
XDestroyWindow(display, window);
is_open = 0;
printf("Window destroyed \n");
}
} break;
}
}
return 0;
}