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; }