Mercurial > sdl-ios-xcode
changeset 3868:b2f59aadec0d SDL-1.2
Fixed bug #294
Can't build SDL 1.2.11(and svn) for Pocket PC 2003 with Visual Studio 2005
Fix contributed by Dmitry Yakimov
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sat, 23 Sep 2006 23:07:52 +0000 |
parents | 4dae257a9cbf |
children | b0955ae208f3 |
files | src/video/windib/SDL_dibevents.c src/video/windib/SDL_dibvideo.c test/testalpha.c |
diffstat | 3 files changed, 32 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/video/windib/SDL_dibevents.c Sat Sep 16 12:00:03 2006 +0000 +++ b/src/video/windib/SDL_dibevents.c Sat Sep 23 23:07:52 2006 +0000 @@ -273,18 +273,35 @@ void DIB_InitOSKeymap(_THIS) { int i; - char current_layout[256]; +#ifndef _WIN32_WCE + char current_layout[KL_NAMELENGTH]; GetKeyboardLayoutName(current_layout); //printf("Initial Keyboard Layout Name: '%s'\n", current_layout); hLayoutUS = LoadKeyboardLayout("00000409", KLF_NOTELLSHELL); + if (!hLayoutUS) { //printf("Failed to load US keyboard layout. Using current.\n"); hLayoutUS = GetKeyboardLayout(0); } LoadKeyboardLayout(current_layout, KLF_ACTIVATE); +#else +#if _WIN32_WCE >=420 + TCHAR current_layout[KL_NAMELENGTH]; + GetKeyboardLayoutName(current_layout); + //printf("Initial Keyboard Layout Name: '%s'\n", current_layout); + + hLayoutUS = LoadKeyboardLayout(L"00000409", 0); + + if (!hLayoutUS) { + //printf("Failed to load US keyboard layout. Using current.\n"); + hLayoutUS = GetKeyboardLayout(0); + } + LoadKeyboardLayout(current_layout, 0); +#endif // _WIN32_WCE >=420 +#endif /* Map the VK keysyms */ for ( i=0; i<SDL_arraysize(VK_keymap); ++i ) VK_keymap[i] = SDLK_UNKNOWN; @@ -414,7 +431,11 @@ static int SDL_MapVirtualKey(int scancode, int vkey) { +#ifndef _WIN32_WCE int mvke = MapVirtualKeyEx(scancode & 0xFF, 1, hLayoutUS); +#else + int mvke = MapVirtualKey(scancode & 0xFF, 1); +#endif switch(vkey) { /* These are always correct */
--- a/src/video/windib/SDL_dibvideo.c Sat Sep 16 12:00:03 2006 +0000 +++ b/src/video/windib/SDL_dibvideo.c Sat Sep 23 23:07:52 2006 +0000 @@ -785,7 +785,12 @@ bounds.top = SDL_windowY; bounds.right = SDL_windowX+video->w; bounds.bottom = SDL_windowY+video->h; +#ifndef _WIN32_WCE AdjustWindowRectEx(&bounds, GetWindowLong(SDL_Window, GWL_STYLE), (GetMenu(SDL_Window) != NULL), 0); +#else + // The bMenu parameter must be FALSE; menu bars are not supported + AdjustWindowRectEx(&bounds, GetWindowLong(SDL_Window, GWL_STYLE), 0, 0); +#endif width = bounds.right-bounds.left; height = bounds.bottom-bounds.top; if ( (flags & SDL_FULLSCREEN) ) {
--- a/test/testalpha.c Sat Sep 16 12:00:03 2006 +0000 +++ b/test/testalpha.c Sat Sep 23 23:07:52 2006 +0000 @@ -505,9 +505,14 @@ } break; case SDL_KEYDOWN: +#ifndef _WIN32_WCE if ( event.key.keysym.sym == SDLK_ESCAPE ) { done = 1; } +#else + // there is no ESC key at all + done = 1; +#endif break; case SDL_QUIT: done = 1;