diff options
Diffstat (limited to 'games/yae/patches/allow_x_window_close.diff')
-rw-r--r-- | games/yae/patches/allow_x_window_close.diff | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/games/yae/patches/allow_x_window_close.diff b/games/yae/patches/allow_x_window_close.diff new file mode 100644 index 0000000000..d596ce7b39 --- /dev/null +++ b/games/yae/patches/allow_x_window_close.diff @@ -0,0 +1,33 @@ +diff -Naur -Naur yae-0.7/x_window.c yae-0.7.patched/x_window.c +--- yae-0.7/x_window.c 2007-04-03 17:47:59.000000000 -0400 ++++ yae-0.7.patched/x_window.c 2021-10-12 00:23:48.765550342 -0400 +@@ -57,6 +57,8 @@ + + static Cursor InvisibleCursor; + ++static Atom delete_atom; ++ + Visual *getVisual( Display *dpy, int screen, int depth, int class ) + { + XVisualInfo vinfo, *vinfoList; +@@ -219,6 +221,9 @@ + XFlush( dc->display ); + #endif + ++ delete_atom = XInternAtom(dc->display, "WM_DELETE_WINDOW", False); ++ XSetWMProtocols(dc->display, dc->window, &delete_atom, 1); ++ + /* + * startup micro job for X window + */ +@@ -313,6 +318,10 @@ + #endif + refreshScreen(); + break; ++ case ClientMessage: ++ if(event.xclient.data.l[0] == delete_atom) ++ shutdown_6502(); ++ break; + case DestroyNotify: + Signal6502( SIG_6502_SHUTDOWN ); + break; |