From d923ed3c5fbb1aad03c82f29cf93412215ae662e Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 19 Oct 2019 15:53:33 -0700 Subject: GLK: LEVEL9: Fixes for exiting game by closing window --- engines/glk/level9/level9_main.cpp | 4 ++++ engines/glk/level9/os_glk.cpp | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/engines/glk/level9/level9_main.cpp b/engines/glk/level9/level9_main.cpp index 043266a178..2ce60a5fed 100644 --- a/engines/glk/level9/level9_main.cpp +++ b/engines/glk/level9/level9_main.cpp @@ -3559,6 +3559,10 @@ L9BOOL RunGame() { code = *codeptr++; /* printf("%d",code); */ executeinstruction(); + + if (g_vm->shouldQuit()) + Running = false; + return Running; } diff --git a/engines/glk/level9/os_glk.cpp b/engines/glk/level9/os_glk.cpp index 1b65ef1401..7722507c13 100644 --- a/engines/glk/level9/os_glk.cpp +++ b/engines/glk/level9/os_glk.cpp @@ -4844,6 +4844,11 @@ gln_bool os_input(char *buffer, int size) { */ g_vm->glk_request_line_event(gln_main_window, buffer, size - 1, 0); gln_event_wait(evtype_LineInput, &event); + if (g_vm->shouldQuit()) { + g_vm->glk_cancel_line_event(gln_main_window, &event); + gln_stop_reason = STOP_EXIT; + return FALSE; + } /* Terminate the input line with a NUL. */ assert((int)event.val1 <= size - 1); -- cgit v1.2.3