~ruther/qmk_firmware

59e073e82b0a8bee13270bf328945ee6b8769c36 — tmk 12 years ago c3d57b6
Fix tap key bug: layer stuck

- Can't use Invert action for tap key, use On/Off insted.
1 files changed, 12 insertions(+), 12 deletions(-)

M common/action.c
M common/action.c => common/action.c +12 -12
@@ 499,20 499,20 @@ static void process_action(keyrecord_t *record)
                /* Keymap Bit invert with tap key */
                default:
                    if (event.pressed) {
                        if (IS_TAPPING_KEY(event.key) && tap_count > 0) {
                        if (tap_count > 0) {
                            debug("KEYMAP_TAP_KEY: Tap: register_code\n");
                            register_code(action.layer.code);
                        } else {
                            debug("KEYMAP_TAP_KEY: No tap: invert on press\n");
                            keymap_invert(action.layer.val);
                            debug("KEYMAP_TAP_KEY: No tap: On on press\n");
                            keymap_on(action.layer.val);
                        }
                    } else {
                        if (IS_TAPPING_KEY(event.key) && tap_count > 0) {
                        if (tap_count > 0) {
                            debug("KEYMAP_TAP_KEY: Tap: unregister_code\n");
                            unregister_code(action.layer.code);
                        } else {
                            debug("KEYMAP_TAP_KEY: No tap: invert on release\n");
                            keymap_invert(action.layer.val);
                            debug("KEYMAP_TAP_KEY: No tap: Off on release\n");
                            keymap_off(action.layer.val);
                        }
                    }
                    break;


@@ 649,20 649,20 @@ static void process_action(keyrecord_t *record)
                /* Overlay Bit invert with tap key */
                default:
                    if (event.pressed) {
                        if (IS_TAPPING_KEY(event.key) && tap_count > 0) {
                        if (tap_count > 0) {
                            debug("OVERLAY_TAP_KEY: Tap: register_code\n");
                            register_code(action.layer.code);
                        } else {
                            debug("OVERLAY_TAP_KEY: No tap: invert on press\n");
                            overlay_invert(action.layer.val);
                            debug("OVERLAY_TAP_KEY: No tap: On on press\n");
                            overlay_on(action.layer.val);
                        }
                    } else {
                        if (IS_TAPPING_KEY(event.key) && tap_count > 0) {
                        if (tap_count > 0) {
                            debug("OVERLAY_TAP_KEY: Tap: unregister_code\n");
                            unregister_code(action.layer.code);
                        } else {
                            debug("OVERLAY_TAP_KEY: No tap: invert on release\n");
                            overlay_invert(action.layer.val);
                            debug("OVERLAY_TAP_KEY: No tap: Off on release\n");
                            overlay_off(action.layer.val);
                        }
                    }
                    break;