playground/main.c

42 lines
1003 B
C
Raw Normal View History

2026-06-06 23:30:07 -04:00
#include <stdio.h>
#include <unistd.h>
#include <X11/Xlib.h>
2026-06-07 00:23:58 -04:00
#include <X11/Xutil.h>
2026-06-06 23:30:07 -04:00
int main()
{
Display *display = XOpenDisplay(NULL);
Window main_window = XDefaultRootWindow(display);
Window window = XCreateSimpleWindow(display, main_window, 0, 0, 250, 250, 1, 0, 0x00aade87);
XMapWindow(display, window);
XFlush(display);
2026-06-07 00:23:58 -04:00
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;
}
}
2026-06-06 23:30:07 -04:00
return 0;
}