aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/input_translator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/titanic/input_translator.cpp')
-rw-r--r--engines/titanic/input_translator.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/engines/titanic/input_translator.cpp b/engines/titanic/input_translator.cpp
index bd805258d5..c5640a48bc 100644
--- a/engines/titanic/input_translator.cpp
+++ b/engines/titanic/input_translator.cpp
@@ -86,13 +86,15 @@ void CInputTranslator::mouseWheel(bool wheelUp, const Point &pt) {
}
void CInputTranslator::keyDown(const Common::KeyState &keyState) {
- if (isSpecialKey(keyState.keycode)) {
- CVirtualKeyCharMsg msg(keyState);
- _inputHandler->handleMessage(msg);
- }
-
if (keyState.ascii > 0 && keyState.ascii <= 127) {
CKeyCharMsg msg(keyState.ascii);
+ if (_inputHandler->handleMessage(msg))
+ return;
+ }
+
+ if (isSpecialKey(keyState.keycode)) {
+ CVirtualKeyCharMsg msg(keyState);
+ msg._keyState.ascii = 0;
_inputHandler->handleMessage(msg);
}
}