aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/agi/keyboard.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/engines/agi/keyboard.cpp b/engines/agi/keyboard.cpp
index 07aec985c8..9fb837badb 100644
--- a/engines/agi/keyboard.cpp
+++ b/engines/agi/keyboard.cpp
@@ -136,6 +136,7 @@ void AgiEngine::processEvents() {
}
key = event.kbd.ascii;
+#if 0
if (event.kbd.keycode >= Common::KEYCODE_KP0 && event.kbd.keycode <= Common::KEYCODE_KP9) {
if (!(event.kbd.flags & Common::KBD_NUM)) {
// HACK: Num-Lock not enabled
@@ -144,8 +145,13 @@ void AgiEngine::processEvents() {
key = 0;
}
}
-
- if ((key) && (key <= 0xFF)) {
+#endif
+ // FIXME: Checking .ascii this way seems to cause issues on at least AmigaOS
+ // See bug #7009. For detailed information see engines/sci/event.cpp, EventManager::getScummVMEvent().
+ // For now we are using the same code as in SCI to make it work.
+ // Needs to get fixed in SDL backend / SDL itself.
+ //if ((key) && (key <= 0xFF)) {
+ if ((key) && (!(event.kbd.keycode & 0xFF00))) {
// No special key, directly accept it
// Is ISO-8859-1, we need lower 128 characters only, which is plain ASCII, so no mapping required
if (Common::isAlpha(key)) {