diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2016-03-05 13:05:49 +0100 |
---|---|---|
committer | Rémi Verschelde <remi@verschelde.fr> | 2016-03-05 13:05:49 +0100 |
commit | 6b1ca582f94b23e000e8c930586bf980e12e622c (patch) | |
tree | bcc798ce24953cd7a45bc4c865e071f571773e5d /platform/javascript/javascript_main.cpp | |
parent | 5a9b18b665b250b54c0d8eb80354dc08e363377c (diff) | |
parent | 352db6b17eaed84fef930723a67c6fba40a4b099 (diff) | |
download | redot-engine-6b1ca582f94b23e000e8c930586bf980e12e622c.tar.gz |
Merge pull request #3920 from Hinsbart/js_echo_keys
html5: workaround for echo key events.
Diffstat (limited to 'platform/javascript/javascript_main.cpp')
-rw-r--r-- | platform/javascript/javascript_main.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/platform/javascript/javascript_main.cpp b/platform/javascript/javascript_main.cpp index e66110b655..632ef2b6b2 100644 --- a/platform/javascript/javascript_main.cpp +++ b/platform/javascript/javascript_main.cpp @@ -74,6 +74,15 @@ static void _glut_skey(bool pressed,int key) { case GLUT_KEY_INSERT: ev.key.scancode=KEY_INSERT; break; } + if (pressed) { + if (os->skey_pressed[key]) + ev.key.echo = true; + else + os->skey_pressed[key] = true; + } + else { + os->skey_pressed[key] = false; + } uint32_t m = glutGetModifiers(); ev.key.mod.alt=(m&GLUT_ACTIVE_ALT)!=0; @@ -107,6 +116,16 @@ static void _glut_key(bool pressed,unsigned char key) { default: { ev.key.unicode=key; } + + if (pressed) { + if (os->key_pressed[key]) + ev.key.echo = true; + else + os->key_pressed[key] = true; + } + else { + os->key_pressed[key] = false; + } } |