diff options
| author | hondres | 2016-03-04 20:26:39 +0100 |
|---|---|---|
| committer | hondres | 2016-03-04 20:26:39 +0100 |
| commit | 352db6b17eaed84fef930723a67c6fba40a4b099 (patch) | |
| tree | 3c92bfb8ce1cb3d843585b172348a680bee6e7fe /platform/javascript | |
| parent | 26342b34aaaa2daedb51b36f5c209341d146097b (diff) | |
| download | godot-352db6b17eaed84fef930723a67c6fba40a4b099.tar.gz godot-352db6b17eaed84fef930723a67c6fba40a4b099.tar.zst godot-352db6b17eaed84fef930723a67c6fba40a4b099.zip | |
Diffstat (limited to 'platform/javascript')
| -rw-r--r-- | platform/javascript/javascript_main.cpp | 19 | ||||
| -rw-r--r-- | platform/javascript/os_javascript.cpp | 6 | ||||
| -rw-r--r-- | platform/javascript/os_javascript.h | 4 |
3 files changed, 27 insertions, 2 deletions
diff --git a/platform/javascript/javascript_main.cpp b/platform/javascript/javascript_main.cpp index e66110b65..632ef2b6b 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; + } } diff --git a/platform/javascript/os_javascript.cpp b/platform/javascript/os_javascript.cpp index 562733ab8..413d88ee2 100644 --- a/platform/javascript/os_javascript.cpp +++ b/platform/javascript/os_javascript.cpp @@ -693,7 +693,11 @@ OS_JavaScript::OS_JavaScript(GFXInitFunc p_gfx_init_func,void*p_gfx_init_ud, Ope time_to_save_sync=-1; - + for (int i = 0; i < 256; i++) { + key_pressed[i] = false; + if (i < 121) + skey_pressed[i] = false; + } } OS_JavaScript::~OS_JavaScript() { diff --git a/platform/javascript/os_javascript.h b/platform/javascript/os_javascript.h index ec3a6cf91..4a8265b9d 100644 --- a/platform/javascript/os_javascript.h +++ b/platform/javascript/os_javascript.h @@ -56,10 +56,12 @@ public: Point2 pos; }; + bool skey_pressed[121]; + bool key_pressed[256]; + private: Vector<TouchPos> touch; - Point2 last_mouse; unsigned int last_id; GFXInitFunc gfx_init_func; |
