FN macro: use layer_invert() instead of modifying layer_state directly

- fixes stuck keys from the temporary layers
  (see also jackhumbert/qmk_firmware#78)
- removed the workaround for jackhumbert/qmk_firmware#81
  (using layer_invert() fixes the problem)
pull/157/head
Didier Loiseau 9 years ago
parent 7ba42b994b
commit a2f6ab16c0

@ -11,9 +11,6 @@
#define MDBL0 1 #define MDBL0 1
#define MFNLR 2 #define MFNLR 2
#define MCUT 3
#define MCOPY 4
#define MPSTE 5
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Basic layer /* Basic layer
@ -178,7 +175,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MAIL, KC_WHOM, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MAIL, KC_WHOM,
KC_TRNS, KC_TRNS, M(MCUT), M(MCOPY), M(MPSTE), KC_MUTE, KC_VOLD, KC_TRNS, KC_TRNS, LSFT(KC_DELT),LCTL(KC_INS),LSFT(KC_INS), KC_MUTE, KC_VOLD,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@ -210,22 +207,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
} }
break; break;
case MFNLR: case MFNLR:
layer_state ^= (1 << NUMR) | (1 << FNLR); layer_invert(NUMR);
break; layer_invert(FNLR);
case MCUT:
if (record->event.pressed) {
return MACRO(D(LSFT), T(DELT), U(LSFT), END);
}
break;
case MCOPY:
if (record->event.pressed) {
return MACRO(D(LCTL), T(INS), U(LCTL), END);
}
break;
case MPSTE:
if (record->event.pressed) {
return MACRO(D(LSFT), T(INS), U(LSFT), END);
}
break; break;
} }
return MACRO_NONE; return MACRO_NONE;

Loading…
Cancel
Save