[Scummvm-cvs-logs] SF.net SVN: scummvm:[33840] scummvm/branches/branch-0-12-0/backends/ platform/wince

knakos at users.sourceforge.net knakos at users.sourceforge.net
Wed Aug 13 21:15:15 CEST 2008


Revision: 33840
          http://scummvm.svn.sourceforge.net/scummvm/?rev=33840&view=rev
Author:   knakos
Date:     2008-08-13 19:15:12 +0000 (Wed, 13 Aug 2008)

Log Message:
-----------
fix bug #1910057: FT multifunction (sync)

Modified Paths:
--------------
    scummvm/branches/branch-0-12-0/backends/platform/wince/CEkeys/EventsBuffer.cpp
    scummvm/branches/branch-0-12-0/backends/platform/wince/wince-sdl.cpp

Modified: scummvm/branches/branch-0-12-0/backends/platform/wince/CEkeys/EventsBuffer.cpp
===================================================================
--- scummvm/branches/branch-0-12-0/backends/platform/wince/CEkeys/EventsBuffer.cpp	2008-08-13 19:13:53 UTC (rev 33839)
+++ scummvm/branches/branch-0-12-0/backends/platform/wince/CEkeys/EventsBuffer.cpp	2008-08-13 19:15:12 UTC (rev 33840)
@@ -36,9 +36,8 @@
 			key->setKey(key->keycode());
 
 		ev.type = (pushed ? SDL_KEYDOWN : SDL_KEYUP);
-		ev.key.keysym.mod = (SDLMod)key->flags();
+		ev.key.keysym.unicode = (SDLMod)key->flags();	// HACK: put the flags into the unused unicode field
 		ev.key.keysym.sym = (SDLKey)key->keycode();
-		ev.key.keysym.unicode = key->keycode();
 		ev.key.keysym.mod = KMOD_RESERVED;
 		return (SDL_PushEvent(&ev) == 0);
 	}

Modified: scummvm/branches/branch-0-12-0/backends/platform/wince/wince-sdl.cpp
===================================================================
--- scummvm/branches/branch-0-12-0/backends/platform/wince/wince-sdl.cpp	2008-08-13 19:13:53 UTC (rev 33839)
+++ scummvm/branches/branch-0-12-0/backends/platform/wince/wince-sdl.cpp	2008-08-13 19:15:12 UTC (rev 33840)
@@ -2262,15 +2262,18 @@
 				_lastKeyPressed = 0;
 				event.type = Common::EVENT_PREDICTIVE_DIALOG;
 				return true;
-			}
-
-			event.type = Common::EVENT_KEYDOWN;
+			} 			event.type = Common::EVENT_KEYDOWN;
 			if (!_unfilteredkeys)
 				event.kbd.keycode = (Common::KeyCode)ev.key.keysym.sym;
 			else
 				event.kbd.keycode = (Common::KeyCode)mapKeyCE(ev.key.keysym.sym, ev.key.keysym.mod, ev.key.keysym.unicode, _unfilteredkeys);
 			event.kbd.ascii = mapKeyCE(ev.key.keysym.sym, ev.key.keysym.mod, ev.key.keysym.unicode, _unfilteredkeys);
 
+			if (ev.key.keysym.mod == KMOD_RESERVED && ev.key.keysym.unicode == KMOD_SHIFT) {
+				event.kbd.ascii ^= 0x20;
+				event.kbd.flags = Common::KBD_SHIFT;
+			}
+
 			return true;
 
 		case SDL_KEYUP:
@@ -2298,6 +2301,11 @@
 				event.kbd.keycode = (Common::KeyCode)mapKeyCE(ev.key.keysym.sym, ev.key.keysym.mod, ev.key.keysym.unicode, _unfilteredkeys);
 			event.kbd.ascii = mapKeyCE(ev.key.keysym.sym, ev.key.keysym.mod, ev.key.keysym.unicode, _unfilteredkeys);
 
+			if (ev.key.keysym.mod == KMOD_RESERVED && ev.key.keysym.unicode == KMOD_SHIFT) {
+				event.kbd.ascii ^= 0x20;
+				event.kbd.flags = Common::KBD_SHIFT;
+			}
+
 			return true;
 
 		case SDL_MOUSEMOTION:


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list