diff options
author | Kostas Nakos | 2008-08-13 19:13:53 +0000 |
---|---|---|
committer | Kostas Nakos | 2008-08-13 19:13:53 +0000 |
commit | 5a54dc61a43a7f911a2ef230da9258e3b41fd691 (patch) | |
tree | d0421cdc094d92eea0c2636f5ac2d11172d41d21 | |
parent | 0f95bb9fd516ad9d61f9d8ccc492cdb1c69cfc87 (diff) | |
download | scummvm-rg350-5a54dc61a43a7f911a2ef230da9258e3b41fd691.tar.gz scummvm-rg350-5a54dc61a43a7f911a2ef230da9258e3b41fd691.tar.bz2 scummvm-rg350-5a54dc61a43a7f911a2ef230da9258e3b41fd691.zip |
fix bug #1910057: FT multifunction
svn-id: r33839
-rw-r--r-- | backends/platform/wince/CEkeys/EventsBuffer.cpp | 3 | ||||
-rw-r--r-- | backends/platform/wince/wince-sdl.cpp | 14 |
2 files changed, 12 insertions, 5 deletions
diff --git a/backends/platform/wince/CEkeys/EventsBuffer.cpp b/backends/platform/wince/CEkeys/EventsBuffer.cpp index 92a21ab7ad..f31a77570f 100644 --- a/backends/platform/wince/CEkeys/EventsBuffer.cpp +++ b/backends/platform/wince/CEkeys/EventsBuffer.cpp @@ -36,9 +36,8 @@ namespace CEKEYS { 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); } diff --git a/backends/platform/wince/wince-sdl.cpp b/backends/platform/wince/wince-sdl.cpp index 8334d70ac8..48f157f6ff 100644 --- a/backends/platform/wince/wince-sdl.cpp +++ b/backends/platform/wince/wince-sdl.cpp @@ -2262,15 +2262,18 @@ bool OSystem_WINCE3::pollEvent(Common::Event &event) { _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 @@ bool OSystem_WINCE3::pollEvent(Common::Event &event) { 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: |