commit 5cd55b0
Devine Lu Linvega
·
2025-02-20 17:34:40 +0000 UTC
parent 48986c8
Make window floating
1 files changed,
+14,
-5
+14,
-5
1@@ -184,10 +184,20 @@ display_hidecursor(void)
2 XFreePixmap(display, bitmap);
3 }
4
5+static void
6+display_floating(Display *dpy, Window win)
7+{
8+ Atom wmDelete = XInternAtom(display, "WM_DELETE_WINDOW", True);
9+ Atom wmType = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE", False);
10+ Atom wmDialog = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE_DIALOG", False);
11+ XSetWMProtocols(display, window, &wmDelete, 1);
12+ XChangeProperty(dpy, win, wmType, 4, 32, PropModeReplace, (unsigned char *)&wmDialog, 1);
13+}
14+
15 static int
16 display_init(void)
17 {
18- Atom wmDelete;
19+
20 Visual *visual;
21 XClassHint class = {"uxn11", "Uxn"};
22 /* start display */
23@@ -199,13 +209,12 @@ display_init(void)
24 if(visual->class != TrueColor)
25 return system_error("init", "True-color visual failed");
26 window = XCreateSimpleWindow(display, RootWindow(display, 0), 0, 0, WIDTH, HEIGHT, 1, 0, 0);
27+ display_hidecursor();
28+ display_floating(display, window);
29 XSelectInput(display, window, ButtonPressMask | ButtonReleaseMask | PointerMotionMask | ExposureMask | KeyPressMask | KeyReleaseMask);
30- wmDelete = XInternAtom(display, "WM_DELETE_WINDOW", True);
31- XSetWMProtocols(display, window, &wmDelete, 1);
32 XStoreName(display, window, "uxn11");
33 XSetClassHint(display, window, &class);
34 XMapWindow(display, window);
35- display_hidecursor();
36 screen_resize(WIDTH, HEIGHT, 1);
37 return 1;
38 }
39@@ -253,7 +262,7 @@ main(int argc, char **argv)
40 {
41 int i = 1;
42 if(argc == 2 && argv[1][0] == '-' && argv[1][1] == 'v')
43- return !fprintf(stdout, "Uxn11 - Varvara Emulator, 14 Feb 2025.\n");
44+ return !fprintf(stdout, "Uxn11 - Varvara Emulator, 20 Feb 2025.\n");
45 else if(argc == 1)
46 return !fprintf(stdout, "usage: %s [-v] file.rom [args..]\n", argv[0]);
47 else if(!display_init())