summaryrefslogtreecommitdiffstats
path: root/quantum/process_keycode/process_unicode_common.c
diff options
context:
space:
mode:
authorJack Humbert <jack.humb@gmail.com>2017-02-16 05:20:35 +0100
committerJack Humbert <jack.humb@gmail.com>2017-02-16 05:20:35 +0100
commit58823b4e0324f5b2861fc5a0f74f6faa3673f5dc (patch)
tree04e3074214a8415a8b0404477561d990a9ce205c /quantum/process_keycode/process_unicode_common.c
parentf89499e255afbe5f8adeae5e71367f3d358af527 (diff)
downloadqmk_firmware-58823b4e0324f5b2861fc5a0f74f6faa3673f5dc.tar.gz
qmk_firmware-58823b4e0324f5b2861fc5a0f74f6faa3673f5dc.tar.xz
fix weirdness with arm and mods
Diffstat (limited to 'quantum/process_keycode/process_unicode_common.c')
-rw-r--r--quantum/process_keycode/process_unicode_common.c38
1 files changed, 20 insertions, 18 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 @@
#include "process_unicode_common.h"
+uint8_t mods;
+
void set_unicode_input_mode(uint8_t os_target)
{
input_mode = os_target;
@@ -12,17 +14,17 @@ uint8_t get_unicode_input_mode(void) {
__attribute__((weak))
void unicode_input_start (void) {
// save current mods
- unicode_mods = keyboard_report->mods;
+ mods = keyboard_report->mods;
// unregister all mods to start from clean state
- if (unicode_mods & MOD_BIT(KC_LSFT)) unregister_code(KC_LSFT);
- if (unicode_mods & MOD_BIT(KC_RSFT)) unregister_code(KC_RSFT);
- if (unicode_mods & MOD_BIT(KC_LCTL)) unregister_code(KC_LCTL);
- if (unicode_mods & MOD_BIT(KC_RCTL)) unregister_code(KC_RCTL);
- if (unicode_mods & MOD_BIT(KC_LALT)) unregister_code(KC_LALT);
- if (unicode_mods & MOD_BIT(KC_RALT)) unregister_code(KC_RALT);
- if (unicode_mods & MOD_BIT(KC_LGUI)) unregister_code(KC_LGUI);
- if (unicode_mods & MOD_BIT(KC_RGUI)) unregister_code(KC_RGUI);
+ if (mods & MOD_BIT(KC_LSFT)) unregister_code(KC_LSFT);
+ if (mods & MOD_BIT(KC_RSFT)) unregister_code(KC_RSFT);
+ if (mods & MOD_BIT(KC_LCTL)) unregister_code(KC_LCTL);
+ if (mods & MOD_BIT(KC_RCTL)) unregister_code(KC_RCTL);
+ if (mods & MOD_BIT(KC_LALT)) unregister_code(KC_LALT);
+ if (mods & MOD_BIT(KC_RALT)) unregister_code(KC_RALT);
+ if (mods & MOD_BIT(KC_LGUI)) unregister_code(KC_LGUI);
+ if (mods & MOD_BIT(KC_RGUI)) unregister_code(KC_RGUI);
switch(input_mode) {
case UC_OSX:
@@ -63,15 +65,15 @@ void unicode_input_finish (void) {
break;
}
- // reregister previously set unicode_mods
- if (unicode_mods & MOD_BIT(KC_LSFT)) register_code(KC_LSFT);
- if (unicode_mods & MOD_BIT(KC_RSFT)) register_code(KC_RSFT);
- if (unicode_mods & MOD_BIT(KC_LCTL)) register_code(KC_LCTL);
- if (unicode_mods & MOD_BIT(KC_RCTL)) register_code(KC_RCTL);
- if (unicode_mods & MOD_BIT(KC_LALT)) register_code(KC_LALT);
- if (unicode_mods & MOD_BIT(KC_RALT)) register_code(KC_RALT);
- if (unicode_mods & MOD_BIT(KC_LGUI)) register_code(KC_LGUI);
- if (unicode_mods & MOD_BIT(KC_RGUI)) register_code(KC_RGUI);
+ // reregister previously set mods
+ if (mods & MOD_BIT(KC_LSFT)) register_code(KC_LSFT);
+ if (mods & MOD_BIT(KC_RSFT)) register_code(KC_RSFT);
+ if (mods & MOD_BIT(KC_LCTL)) register_code(KC_LCTL);
+ if (mods & MOD_BIT(KC_RCTL)) register_code(KC_RCTL);
+ if (mods & MOD_BIT(KC_LALT)) register_code(KC_LALT);
+ if (mods & MOD_BIT(KC_RALT)) register_code(KC_RALT);
+ if (mods & MOD_BIT(KC_LGUI)) register_code(KC_LGUI);
+ if (mods & MOD_BIT(KC_RGUI)) register_code(KC_RGUI);
}
void register_hex(uint16_t hex) {