aboutsummaryrefslogtreecommitdiff
path: root/quantum/process_keycode
diff options
context:
space:
mode:
authorGergely Nagy <algernon@madhouse-project.org>2016-08-15 10:07:13 +0200
committerGergely Nagy <algernon@madhouse-project.org>2016-08-15 10:08:53 +0200
commite8845f0daf8dc7a7674dc5420cc5a684bbbea09b (patch)
tree5bd1d52f6a727aa4db5eda54979a1621d924ec14 /quantum/process_keycode
parent43d08629cf275d0b32281ffe8785258fff226b49 (diff)
downloadqmk_firmware-e8845f0daf8dc7a7674dc5420cc5a684bbbea09b.tar.gz
qmk_firmware-e8845f0daf8dc7a7674dc5420cc5a684bbbea09b.zip
process_unicode: Introduce a slight delay
When entering unicode codes, use some delay, so the OS has time to process the information. This is not needed on all systems, but some seem to require it. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
Diffstat (limited to 'quantum/process_keycode')
-rw-r--r--quantum/process_keycode/process_unicode.c4
-rw-r--r--quantum/process_keycode/process_unicode.h4
2 files changed, 8 insertions, 0 deletions
diff --git a/quantum/process_keycode/process_unicode.c b/quantum/process_keycode/process_unicode.c
index d8a0f667c..72c809c30 100644
--- a/quantum/process_keycode/process_unicode.c
+++ b/quantum/process_keycode/process_unicode.c
@@ -37,6 +37,7 @@ void unicode_input_start (void) {
37 unregister_code(KC_PPLS); 37 unregister_code(KC_PPLS);
38 break; 38 break;
39 } 39 }
40 wait_ms(UNICODE_TYPE_DELAY);
40} 41}
41 42
42void unicode_input_finish (void) { 43void unicode_input_finish (void) {
@@ -109,6 +110,7 @@ void qk_ucis_symbol_fallback (void) {
109 uint8_t code = qk_ucis_state.codes[i]; 110 uint8_t code = qk_ucis_state.codes[i];
110 register_code(code); 111 register_code(code);
111 unregister_code(code); 112 unregister_code(code);
113 wait_ms(UNICODE_TYPE_DELAY);
112 } 114 }
113} 115}
114 116
@@ -135,6 +137,7 @@ void register_ucis(const char *hex) {
135 if (kc) { 137 if (kc) {
136 register_code (kc); 138 register_code (kc);
137 unregister_code (kc); 139 unregister_code (kc);
140 wait_ms (UNICODE_TYPE_DELAY);
138 } 141 }
139 } 142 }
140} 143}
@@ -172,6 +175,7 @@ bool process_ucis (uint16_t keycode, keyrecord_t *record) {
172 for (i = qk_ucis_state.count; i > 0; i--) { 175 for (i = qk_ucis_state.count; i > 0; i--) {
173 register_code (KC_BSPC); 176 register_code (KC_BSPC);
174 unregister_code (KC_BSPC); 177 unregister_code (KC_BSPC);
178 wait_ms(UNICODE_TYPE_DELAY);
175 } 179 }
176 180
177 if (keycode == KC_ESC) { 181 if (keycode == KC_ESC) {
diff --git a/quantum/process_keycode/process_unicode.h b/quantum/process_keycode/process_unicode.h
index be24ddc2b..85364e8eb 100644
--- a/quantum/process_keycode/process_unicode.h
+++ b/quantum/process_keycode/process_unicode.h
@@ -8,6 +8,10 @@
8#define UC_WIN 2 8#define UC_WIN 2
9#define UC_BSD 3 9#define UC_BSD 3
10 10
11#ifndef UNICODE_TYPE_DELAY
12#define UNICODE_TYPE_DELAY 10
13#endif
14
11void set_unicode_input_mode(uint8_t os_target); 15void set_unicode_input_mode(uint8_t os_target);
12void unicode_input_start(void); 16void unicode_input_start(void);
13void unicode_input_finish(void); 17void unicode_input_finish(void);