commit 5014caee2a000ffd682f04bcbec76265b2163335
Author: Simon Howard <fraggle@gmail.com>
AuthorDate: Mon May 4 20:07:48 2009 +0000
Commit: Simon Howard <fraggle@gmail.com>
CommitDate: Mon May 4 20:07:48 2009 +0000
Fix window close button to bring up F10 quit message.
Subversion-branch: /branches/raven-branch
Subversion-revision: 1506
---
src/d_event.h | 3 ++-
src/doom/m_menu.c | 10 +++++++++-
src/heretic/mn_menu.c | 8 ++++++++
src/hexen/mn_menu.c | 8 ++++++++
src/i_video.c | 7 ++-----
5 files changed, 29 insertions(+), 7 deletions(-)
diff --git a/src/d_event.h b/src/d_event.h
index da3ee926..e47f82df 100644
--- a/src/d_event.h
+++ b/src/d_event.h
@@ -42,7 +42,8 @@ typedef enum
ev_keydown,
ev_keyup,
ev_mouse,
- ev_joystick
+ ev_joystick,
+ ev_quit
} evtype_t;
// Event structure.
diff --git a/src/doom/m_menu.c b/src/doom/m_menu.c
index a5e81775..4ca30926 100644
--- a/src/doom/m_menu.c
+++ b/src/doom/m_menu.c
@@ -1423,7 +1423,15 @@ boolean M_Responder (event_t* ev)
static int lasty = 0;
static int mousex = 0;
static int lastx = 0;
-
+
+ // "close" button pressed on window?
+ if (ev->type == ev_quit)
+ {
+ S_StartSound(NULL,sfx_swtchn);
+ M_QuitDOOM(0);
+ return true;
+ }
+
// key is the key pressed, ch is the actual character typed
ch = 0;
diff --git a/src/heretic/mn_menu.c b/src/heretic/mn_menu.c
index 0bc9d994..1dc1f289 100644
--- a/src/heretic/mn_menu.c
+++ b/src/heretic/mn_menu.c
@@ -1042,6 +1042,14 @@ boolean MN_Responder(event_t * event)
extern void G_CheckDemoStatus(void);
char *textBuffer;
+ // "close" button pressed on window?
+ if (event->type == ev_quit)
+ {
+ SCQuitGame(0);
+ S_StartSound(NULL, sfx_chat);
+ return true;
+ }
+
if (event->data1 == KEY_RSHIFT)
{
shiftdown = (event->type == ev_keydown);
diff --git a/src/hexen/mn_menu.c b/src/hexen/mn_menu.c
index dd508e28..3ac9c609 100644
--- a/src/hexen/mn_menu.c
+++ b/src/hexen/mn_menu.c
@@ -1132,6 +1132,14 @@ boolean MN_Responder(event_t * event)
extern void G_CheckDemoStatus(void);
char *textBuffer;
+ // "close" button pressed on window?
+ if (event->type == ev_quit)
+ {
+ SCQuitGame(0);
+ S_StartSound(NULL, SFX_CHAT);
+ return true;
+ }
+
if (event->data1 == KEY_RSHIFT)
{
shiftdown = (event->type == ev_keydown);
diff --git a/src/i_video.c b/src/i_video.c
index 8360ab9e..ac25e9ad 100644
--- a/src/i_video.c
+++ b/src/i_video.c
@@ -679,13 +679,10 @@ void I_GetEvent(void)
}
break;
-/* TODO
case SDL_QUIT:
- // bring up the "quit doom?" prompt
- S_StartSound(NULL,sfx_swtchn);
- M_QuitDOOM(0);
+ event.type = ev_quit;
+ D_PostEvent(&event);
break;
- */
case SDL_ACTIVEEVENT:
// need to update our focus state