1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
diff -Naur xtrs-4.9d/trs_xinterface.c xtrs-4.9d.patched/trs_xinterface.c
--- xtrs-4.9d/trs_xinterface.c 2009-06-15 23:23:09.000000000 -0400
+++ xtrs-4.9d.patched/trs_xinterface.c 2023-05-17 15:31:29.237827697 -0400
@@ -730,6 +730,7 @@
Colormap color_map;
XColor cdef;
XGCValues gcvals;
+ Atom wm_delete_window;
char *fontname = NULL;
char *widefontname = NULL;
int len;
@@ -737,6 +738,7 @@
screen = DefaultScreen(display);
color_map = DefaultColormap(display,screen);
+ wm_delete_window = XInternAtom(display, "WM_DELETE_WINDOW", False);
(void) sprintf(option, "%s%s", program_name, ".foreground");
if (XrmGetResource(x_db, option, "Xtrs.Foreground", &type, &value)) {
@@ -937,6 +939,7 @@
trs_fix_size(window, OrigWidth, OrigHeight);
XStoreName(display,window,title);
XSelectInput(display, window, EVENT_MASK);
+ XSetWMProtocols(display, window, &wm_delete_window, 1);
(void) sprintf(option, "%s%s", program_name, ".iconic");
if (XrmGetResource(x_db, option, "Xtrs.Iconic", &type, &value)) {
@@ -1002,6 +1005,7 @@
if (wait) {
XNextEvent(display, &event);
} else {
+ if (XCheckTypedEvent(display, ClientMessage, &event)) trs_exit();
if (!XCheckMaskEvent(display, ~0, &event)) return;
}
|