37 lines
1.1 KiB
Diff
37 lines
1.1 KiB
Diff
diff -Naur kegs.1.05/src/xdriver.c kegs.1.05.patched/src/xdriver.c
|
|
--- kegs.1.05/src/xdriver.c 2021-01-24 18:37:34.000000000 -0500
|
|
+++ kegs.1.05.patched/src/xdriver.c 2021-02-25 17:53:28.054595900 -0500
|
|
@@ -629,13 +629,10 @@
|
|
0, &my_winSizeHints, 0, &my_winClassHint);
|
|
XMapRaised(g_display, x_win);
|
|
|
|
- if(win_info_ptr != &g_mainwin_info) {
|
|
- // Debugger window
|
|
win_info_ptr->delete_atom = XInternAtom(g_display,
|
|
"WM_DELETE_WINDOW", False);
|
|
XSetWMProtocols(g_display, x_win, &(win_info_ptr->delete_atom),
|
|
1);
|
|
- }
|
|
|
|
XSync(g_display, False);
|
|
|
|
@@ -1092,9 +1089,15 @@
|
|
case ClientMessage:
|
|
win_info_ptr = x_find_xwin(ev.xclient.window);
|
|
if(ev.xclient.data.l[0] == win_info_ptr->delete_atom) {
|
|
- // This is a WM_DELETE_WINDOW event
|
|
- // Just unmap the window
|
|
- win_info_ptr->kimage_ptr->active = 0;
|
|
+ if(win_info_ptr == &g_debugwin_info) {
|
|
+ // This is a WM_DELETE_WINDOW event
|
|
+ // Just unmap the window
|
|
+ win_info_ptr->kimage_ptr->active = 0;
|
|
+ } else {
|
|
+ x_auto_repeat_on(1);
|
|
+ XCloseDisplay(g_display);
|
|
+ exit(0);
|
|
+ }
|
|
} else {
|
|
printf("unknown ClientMessage\n");
|
|
}
|