aboutsummaryrefslogtreecommitdiff
path: root/engines/glk
diff options
context:
space:
mode:
authorPaul Gilbert2019-03-01 19:37:02 -0800
committerPaul Gilbert2019-03-01 19:38:21 -0800
commitf14703e70964eb3247259110f3e4b18b97e1ff40 (patch)
treea018d8eaea5ceb35ec277b66354f389384b8a249 /engines/glk
parente91e911b613e4b6cdee5c37346c9304452507aa9 (diff)
downloadscummvm-rg350-f14703e70964eb3247259110f3e4b18b97e1ff40.tar.gz
scummvm-rg350-f14703e70964eb3247259110f3e4b18b97e1ff40.tar.bz2
scummvm-rg350-f14703e70964eb3247259110f3e4b18b97e1ff40.zip
GLK: Don't ignore Alt key combinations
I'm told that on some foreign keyboards, combinations of Alt & Fn keys are used to produce standard characters. So I can't just ignore Alt combinations because of this
Diffstat (limited to 'engines/glk')
-rw-r--r--engines/glk/events.cpp46
1 files changed, 23 insertions, 23 deletions
diff --git a/engines/glk/events.cpp b/engines/glk/events.cpp
index 10651b0031..ed6ad9b243 100644
--- a/engines/glk/events.cpp
+++ b/engines/glk/events.cpp
@@ -222,28 +222,29 @@ void Events::handleKeyDown(const Common::KeyState &ks) {
Windows &windows = *g_vm->_windows;
if (ks.flags & Common::KBD_CTRL) {
- if (ks.keycode == Common::KEYCODE_a)
- windows.inputHandleKey(keycode_Home);
- else if (ks.keycode == Common::KEYCODE_c)
- clipboard.clipboardSend(CLIPBOARD);
- else if (ks.keycode == Common::KEYCODE_e)
- windows.inputHandleKey(keycode_End);
- else if (ks.keycode == Common::KEYCODE_u)
- windows.inputHandleKey(keycode_Escape);
- else if (ks.keycode == Common::KEYCODE_v)
- clipboard.clipboardReceive(CLIPBOARD);
- else if (ks.keycode == Common::KEYCODE_x)
- clipboard.clipboardSend(CLIPBOARD);
- else if (ks.keycode == Common::KEYCODE_LEFT || ks.keycode == Common::KEYCODE_KP4)
- windows.inputHandleKey(keycode_SkipWordLeft);
- else if (ks.keycode == Common::KEYCODE_RIGHT || ks.keycode == Common::KEYCODE_KP6)
- windows.inputHandleKey(keycode_SkipWordRight);
-
- return;
- }
+ do {
+ if (ks.keycode == Common::KEYCODE_a)
+ windows.inputHandleKey(keycode_Home);
+ else if (ks.keycode == Common::KEYCODE_c)
+ clipboard.clipboardSend(CLIPBOARD);
+ else if (ks.keycode == Common::KEYCODE_e)
+ windows.inputHandleKey(keycode_End);
+ else if (ks.keycode == Common::KEYCODE_u)
+ windows.inputHandleKey(keycode_Escape);
+ else if (ks.keycode == Common::KEYCODE_v)
+ clipboard.clipboardReceive(CLIPBOARD);
+ else if (ks.keycode == Common::KEYCODE_x)
+ clipboard.clipboardSend(CLIPBOARD);
+ else if (ks.keycode == Common::KEYCODE_LEFT || ks.keycode == Common::KEYCODE_KP4)
+ windows.inputHandleKey(keycode_SkipWordLeft);
+ else if (ks.keycode == Common::KEYCODE_RIGHT || ks.keycode == Common::KEYCODE_KP6)
+ windows.inputHandleKey(keycode_SkipWordRight);
+ else
+ break;
- if (ks.flags & Common::KBD_ALT)
- return;
+ return;
+ } while (false);
+ }
switch (ks.keycode) {
case Common::KEYCODE_RETURN:
@@ -322,8 +323,7 @@ void Events::handleKeyDown(const Common::KeyState &ks) {
windows.inputHandleKey(keycode_Func12);
break;
default:
- windows.inputHandleKey(ks.ascii);
- break;
+ windows.inputHandleKey(ks.keycode);
break;
}
}