aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--quantum/process_keycode/process_unicode_common.c38
-rw-r--r--quantum/process_keycode/process_unicode_common.h1
2 files changed, 20 insertions, 19 deletions
diff --git a/quantum/process_keycode/process_unicode_common.c b/quantum/process_keycode/process_unicode_common.c
index d924c364a..31bc3b7ab 100644
--- a/quantum/process_keycode/process_unicode_common.c
+++ b/quantum/process_keycode/process_unicode_common.c
@@ -1,5 +1,7 @@
1#include "process_unicode_common.h" 1#include "process_unicode_common.h"
2 2
3uint8_t mods;
4
3void set_unicode_input_mode(uint8_t os_target) 5void set_unicode_input_mode(uint8_t os_target)
4{ 6{
5 input_mode = os_target; 7 input_mode = os_target;
@@ -12,17 +14,17 @@ uint8_t get_unicode_input_mode(void) {
12__attribute__((weak)) 14__attribute__((weak))
13void unicode_input_start (void) { 15void unicode_input_start (void) {
14 // save current mods 16 // save current mods
15 unicode_mods = keyboard_report->mods; 17 mods = keyboard_report->mods;
16 18
17 // unregister all mods to start from clean state 19 // unregister all mods to start from clean state
18 if (unicode_mods & MOD_BIT(KC_LSFT)) unregister_code(KC_LSFT); 20 if (mods & MOD_BIT(KC_LSFT)) unregister_code(KC_LSFT);
19 if (unicode_mods & MOD_BIT(KC_RSFT)) unregister_code(KC_RSFT); 21 if (mods & MOD_BIT(KC_RSFT)) unregister_code(KC_RSFT);
20 if (unicode_mods & MOD_BIT(KC_LCTL)) unregister_code(KC_LCTL); 22 if (mods & MOD_BIT(KC_LCTL)) unregister_code(KC_LCTL);
21 if (unicode_mods & MOD_BIT(KC_RCTL)) unregister_code(KC_RCTL); 23 if (mods & MOD_BIT(KC_RCTL)) unregister_code(KC_RCTL);
22 if (unicode_mods & MOD_BIT(KC_LALT)) unregister_code(KC_LALT); 24 if (mods & MOD_BIT(KC_LALT)) unregister_code(KC_LALT);
23 if (unicode_mods & MOD_BIT(KC_RALT)) unregister_code(KC_RALT); 25 if (mods & MOD_BIT(KC_RALT)) unregister_code(KC_RALT);
24 if (unicode_mods & MOD_BIT(KC_LGUI)) unregister_code(KC_LGUI); 26 if (mods & MOD_BIT(KC_LGUI)) unregister_code(KC_LGUI);
25 if (unicode_mods & MOD_BIT(KC_RGUI)) unregister_code(KC_RGUI); 27 if (mods & MOD_BIT(KC_RGUI)) unregister_code(KC_RGUI);
26 28
27 switch(input_mode) { 29 switch(input_mode) {
28 case UC_OSX: 30 case UC_OSX:
@@ -63,15 +65,15 @@ void unicode_input_finish (void) {
63 break; 65 break;
64 } 66 }
65 67
66 // reregister previously set unicode_mods 68 // reregister previously set mods
67 if (unicode_mods & MOD_BIT(KC_LSFT)) register_code(KC_LSFT); 69 if (mods & MOD_BIT(KC_LSFT)) register_code(KC_LSFT);
68 if (unicode_mods & MOD_BIT(KC_RSFT)) register_code(KC_RSFT); 70 if (mods & MOD_BIT(KC_RSFT)) register_code(KC_RSFT);
69 if (unicode_mods & MOD_BIT(KC_LCTL)) register_code(KC_LCTL); 71 if (mods & MOD_BIT(KC_LCTL)) register_code(KC_LCTL);
70 if (unicode_mods & MOD_BIT(KC_RCTL)) register_code(KC_RCTL); 72 if (mods & MOD_BIT(KC_RCTL)) register_code(KC_RCTL);
71 if (unicode_mods & MOD_BIT(KC_LALT)) register_code(KC_LALT); 73 if (mods & MOD_BIT(KC_LALT)) register_code(KC_LALT);
72 if (unicode_mods & MOD_BIT(KC_RALT)) register_code(KC_RALT); 74 if (mods & MOD_BIT(KC_RALT)) register_code(KC_RALT);
73 if (unicode_mods & MOD_BIT(KC_LGUI)) register_code(KC_LGUI); 75 if (mods & MOD_BIT(KC_LGUI)) register_code(KC_LGUI);
74 if (unicode_mods & MOD_BIT(KC_RGUI)) register_code(KC_RGUI); 76 if (mods & MOD_BIT(KC_RGUI)) register_code(KC_RGUI);
75} 77}
76 78
77void register_hex(uint16_t hex) { 79void register_hex(uint16_t hex) {
diff --git a/quantum/process_keycode/process_unicode_common.h b/quantum/process_keycode/process_unicode_common.h
index aa233db22..1f25eae7d 100644
--- a/quantum/process_keycode/process_unicode_common.h
+++ b/quantum/process_keycode/process_unicode_common.h
@@ -8,7 +8,6 @@
8#endif 8#endif
9 9
10static uint8_t input_mode; 10static uint8_t input_mode;
11uint8_t unicode_mods;
12 11
13void set_unicode_input_mode(uint8_t os_target); 12void set_unicode_input_mode(uint8_t os_target);
14uint8_t get_unicode_input_mode(void); 13uint8_t get_unicode_input_mode(void);