Fixed bug #294 SDL-1.2
authorSam Lantinga <slouken@libsdl.org>
Sat, 23 Sep 2006 23:07:52 +0000
branchSDL-1.2
changeset 3868 b2f59aadec0d
parent 3867 4dae257a9cbf
child 3869 b0955ae208f3
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
src/video/windib/SDL_dibevents.c
src/video/windib/SDL_dibvideo.c
test/testalpha.c
--- 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;