From 1894b3835d45b108db0ded47149baa5aff625e07 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Tue, 14 Mar 2006 07:06:06 +0000 Subject: [PATCH] Fixed bug #124 Print Screen key events weren't reported on Windows --- src/video/windib/SDL_dibevents.c | 7 ++++++- src/video/windx5/SDL_dx5events.c | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/video/windib/SDL_dibevents.c b/src/video/windib/SDL_dibevents.c index 9a8226b3c..c678b4d04 100644 --- a/src/video/windib/SDL_dibevents.c +++ b/src/video/windib/SDL_dibevents.c @@ -160,7 +160,7 @@ LRESULT DIB_HandleMessage(_THIS, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPar SDL_keysym keysym; #ifdef _WIN32_WCE - // Drop GAPI artefacts + // Drop GAPI artifacts if (wParam == 0x84 || wParam == 0x5B) return 0; @@ -197,6 +197,11 @@ LRESULT DIB_HandleMessage(_THIS, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPar wParam = VK_LMENU; break; } + /* Windows only reports keyup for print screen */ + if ( wParam == VK_SNAPSHOT && SDL_GetKeyState(NULL)[SDLK_PRINT] == SDL_RELEASED ) { + posted = SDL_PrivateKeyboard(SDL_PRESSED, + TranslateKey(wParam,HIWORD(lParam),&keysym,1)); + } posted = SDL_PrivateKeyboard(SDL_RELEASED, TranslateKey(wParam,HIWORD(lParam),&keysym,0)); } diff --git a/src/video/windx5/SDL_dx5events.c b/src/video/windx5/SDL_dx5events.c index b2c14c870..068a47baa 100644 --- a/src/video/windx5/SDL_dx5events.c +++ b/src/video/windx5/SDL_dx5events.c @@ -802,7 +802,7 @@ void DX5_InitOSKeymap(_THIS) DIK_keymap[DIK_NUMPADENTER] = SDLK_KP_ENTER; DIK_keymap[DIK_RCONTROL] = SDLK_RCTRL; DIK_keymap[DIK_DIVIDE] = SDLK_KP_DIVIDE; - DIK_keymap[DIK_SYSRQ] = SDLK_SYSREQ; + DIK_keymap[DIK_SYSRQ] = SDLK_PRINT; DIK_keymap[DIK_RMENU] = SDLK_RALT; DIK_keymap[DIK_PAUSE] = SDLK_PAUSE; DIK_keymap[DIK_HOME] = SDLK_HOME;