aboutsummaryrefslogtreecommitdiffstats
path: root/quantum
diff options
context:
space:
mode:
authorGravatar Gergely Nagy <algernon@madhouse-project.org>2016-08-15 10:07:13 +0200
committerGravatar Gergely Nagy <algernon@madhouse-project.org>2016-08-15 10:08:53 +0200
commite8845f0daf8dc7a7674dc5420cc5a684bbbea09b (patch)
tree5bd1d52f6a727aa4db5eda54979a1621d924ec14 /quantum
parent43d08629cf275d0b32281ffe8785258fff226b49 (diff)
downloadqmk_firmware-e8845f0daf8dc7a7674dc5420cc5a684bbbea09b.tar.gz
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')
-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) {
unregister_code(KC_PPLS);
break;
}
+ wait_ms(UNICODE_TYPE_DELAY);
}
void unicode_input_finish (void) {
@@ -109,6 +110,7 @@ void qk_ucis_symbol_fallback (void) {
uint8_t code = qk_ucis_state.codes[i];
register_code(code);
unregister_code(code);
+ wait_ms(UNICODE_TYPE_DELAY);
}
}
@@ -135,6 +137,7 @@ void register_ucis(const char *hex) {
if (kc) {
register_code (kc);
unregister_code (kc);
+ wait_ms (UNICODE_TYPE_DELAY);
}
}
}
@@ -172,6 +175,7 @@ bool process_ucis (uint16_t keycode, keyrecord_t *record) {
for (i = qk_ucis_state.count; i > 0; i--) {
register_code (KC_BSPC);
unregister_code (KC_BSPC);
+ wait_ms(UNICODE_TYPE_DELAY);
}
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 @@
#define UC_WIN 2
#define UC_BSD 3
+#ifndef UNICODE_TYPE_DELAY
+#define UNICODE_TYPE_DELAY 10
+#endif
+
void set_unicode_input_mode(uint8_t os_target);
void unicode_input_start(void);
void unicode_input_finish(void);