diff options
author | Zach Nielsen <nielsen.zac@gmail.com> | 2016-11-10 12:14:54 -0800 |
---|---|---|
committer | Zach Nielsen <nielsen.zac@gmail.com> | 2016-11-10 12:14:54 -0800 |
commit | 59bef40aab37f8dd4db61e601f2a0e9b5991e993 (patch) | |
tree | 6a0dc0def105aa84c6f0c6ba9f6a60edbe991263 /quantum/process_keycode | |
parent | f73a378f0f98c229d578a1c33563ea8d57dc5bf6 (diff) | |
download | qmk_firmware-59bef40aab37f8dd4db61e601f2a0e9b5991e993.tar.gz qmk_firmware-59bef40aab37f8dd4db61e601f2a0e9b5991e993.zip |
Keep unicode's input_mode through a power cycle
Diffstat (limited to 'quantum/process_keycode')
-rw-r--r-- | quantum/process_keycode/process_unicode.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/quantum/process_keycode/process_unicode.c b/quantum/process_keycode/process_unicode.c index cd3a610b4d..f42f255389 100644 --- a/quantum/process_keycode/process_unicode.c +++ b/quantum/process_keycode/process_unicode.c @@ -1,6 +1,7 @@ #include "process_unicode.h" static uint8_t input_mode; +static uint8_t first_flag = 0; __attribute__((weak)) uint16_t hex_to_keycode(uint8_t hex) @@ -17,6 +18,7 @@ uint16_t hex_to_keycode(uint8_t hex) void set_unicode_input_mode(uint8_t os_target) { input_mode = os_target; + eeprom_update_byte(EECONFIG_UNICODEMODE, os_target); } uint8_t get_unicode_input_mode(void) { @@ -75,6 +77,10 @@ void register_hex(uint16_t hex) { bool process_unicode(uint16_t keycode, keyrecord_t *record) { if (keycode > QK_UNICODE && record->event.pressed) { + if (first_flag == 0) { + set_unicode_input_mode(eeprom_read_byte(EECONFIG_UNICODEMODE)); + first_flag = 1; + } uint16_t unicode = keycode & 0x7FFF; unicode_input_start(); register_hex(unicode); |