Browse Source

Implement WM_QUERYENDSESSION to allow qutting during video playback

pull/31/head
Anders Jenbo 7 years ago
parent
commit
becf3397c9
  1. 1
      SourceS/miniwin.h
  2. 6
      SourceX/miniwin.cpp
  3. 7
      SourceX/miniwin_msg_sdl.cpp

1
SourceS/miniwin.h

@ -795,6 +795,7 @@ HFILE WINAPI OpenFile(LPCSTR lpFileName, LPOFSTRUCT lpReOpenBuff, UINT uStyle);
#define WM_DESTROY 0x0002
#define WM_PAINT 0x000F
#define WM_CLOSE 0x0010
#define WM_QUERYENDSESSION 0x0011
#define WM_ERASEBKGND 0x0014
#define WM_ACTIVATEAPP 0x001C
#define WM_QUERYNEWPALETTE 0x030F

6
SourceX/miniwin.cpp

@ -664,12 +664,16 @@ LSTATUS RegCloseKeyA(HKEY hKey)
void PostQuitMessage(int nExitCode)
{
DUMMY(); // Possibly use SDL_PumpEvents
DUMMY();
PostMessageA(NULL, WM_QUERYENDSESSION, 0, 0);
}
LRESULT DefWindowProcA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
DUMMY_ONCE();
if (Msg == WM_QUERYENDSESSION)
exit(0);
return NULL;
}

7
SourceX/miniwin_msg_sdl.cpp

@ -177,7 +177,12 @@ WINBOOL WINAPI PeekMessageA(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMs
} break;
case SDL_TEXTINPUT:
case SDL_WINDOWEVENT:
return false_avail();
if (e.window.event == SDL_WINDOWEVENT_CLOSE) {
lpMsg->message = WM_QUERYENDSESSION;
} else {
return false_avail();
}
break;
default:
DUMMY_PRINT("unknown SDL message 0x%X", e.type);
return false_avail();

Loading…
Cancel
Save