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 | |
parent | f73a378f0f98c229d578a1c33563ea8d57dc5bf6 (diff) |
Keep unicode's input_mode through a power cycle
-rw-r--r-- | quantum/process_keycode/process_unicode.c | 6 | ||||
-rw-r--r-- | tmk_core/common/eeconfig.h | 1 |
2 files changed, 7 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); diff --git a/tmk_core/common/eeconfig.h b/tmk_core/common/eeconfig.h index d8caa346f9..280dc7ab67 100644 --- a/tmk_core/common/eeconfig.h +++ b/tmk_core/common/eeconfig.h @@ -33,6 +33,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define EECONFIG_BACKLIGHT (uint8_t *)6 #define EECONFIG_AUDIO (uint8_t *)7 #define EECONFIG_RGBLIGHT (uint32_t *)8 +#define EECONFIG_UNICODEMODE (uint8_t *)12 /* debug bit */ |