12345678910111213141516171819202122232425262728293031323334353637383940 |
- // Copyright 2022 David Kristoffersen (@davidkristoffersen)
- // SPDX-License-Identifier: GPL-3.0-or-later
- #include "macros.h"
- bool handle_language(uint16_t keycode) {
- #ifdef LAYER_NO
- // Handle conversion of English to Norwegian codes
- uint16_t org_keycode = keycode;
- keycode = get_norwegian_code(keycode);
- #endif
- #ifndef NO_SPECIAL_SHIFT
- // Handle conversion of special shift codes
- if (get_mods() & MOD_MASK_SHIFT) {
- uint16_t shifted_key = get_special_shifted_code(keycode);
- if (shifted_key != keycode) {
- // Tap shifted key while shift is disabled
- unregister_code(KC_LSFT);
- tap_code16(shifted_key);
- register_code(KC_LSFT);
- return false;
- }
- }
- #endif
- #ifdef LAYER_NO
- // Tap new language key
- if (keycode != org_keycode) {
- tap_code16(keycode);
- return false;
- }
- #endif
- return true;
- }
- bool process_language(uint16_t keycode, keyrecord_t* record) {
- HANDLE_FALSE(handle_language(keycode));
- return true;
- }
|