Merge remote-tracking branch 'origin/master' into develop
This commit is contained in:
		| @@ -21,6 +21,7 @@ | ||||
|  | ||||
| unicode_config_t unicode_config; | ||||
| uint8_t          unicode_saved_mods; | ||||
| bool             unicode_saved_caps_lock; | ||||
|  | ||||
| #if UNICODE_SELECTED_MODES != -1 | ||||
| static uint8_t selected[]     = {UNICODE_SELECTED_MODES}; | ||||
| @@ -77,6 +78,16 @@ void cycle_unicode_input_mode(int8_t offset) { | ||||
| void persist_unicode_input_mode(void) { eeprom_update_byte(EECONFIG_UNICODEMODE, unicode_config.input_mode); } | ||||
|  | ||||
| __attribute__((weak)) void unicode_input_start(void) { | ||||
|     unicode_saved_caps_lock = host_keyboard_led_state().caps_lock; | ||||
|  | ||||
|     // Note the order matters here! | ||||
|     // Need to do this before we mess around with the mods, or else | ||||
|     // UNICODE_KEY_LNX (which is usually Ctrl-Shift-U) might not work | ||||
|     // correctly in the shifted case. | ||||
|     if (unicode_config.input_mode == UC_LNX && unicode_saved_caps_lock) { | ||||
|         tap_code(KC_CAPS); | ||||
|     } | ||||
|  | ||||
|     unicode_saved_mods = get_mods();  // Save current mods | ||||
|     clear_mods();                     // Unregister mods to start from a clean state | ||||
|  | ||||
| @@ -107,6 +118,9 @@ __attribute__((weak)) void unicode_input_finish(void) { | ||||
|             break; | ||||
|         case UC_LNX: | ||||
|             tap_code(KC_SPC); | ||||
|             if (unicode_saved_caps_lock) { | ||||
|                 tap_code(KC_CAPS); | ||||
|             } | ||||
|             break; | ||||
|         case UC_WIN: | ||||
|             unregister_code(KC_LALT); | ||||
| @@ -125,6 +139,11 @@ __attribute__((weak)) void unicode_input_cancel(void) { | ||||
|             unregister_code(UNICODE_KEY_MAC); | ||||
|             break; | ||||
|         case UC_LNX: | ||||
|             tap_code(KC_ESC); | ||||
|             if (unicode_saved_caps_lock) { | ||||
|                 tap_code(KC_CAPS); | ||||
|             } | ||||
|             break; | ||||
|         case UC_WINC: | ||||
|             tap_code(KC_ESC); | ||||
|             break; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user