~ruther/qmk_firmware

8ce946b5c8e7026b5d7337becf4719e2795af9bb — Stefan Kerkmann 3 years ago 5e6175a
[Bug] Add key event check to `is_tap_record` and remove `is_tap_key` (#18063)

M quantum/action.c => quantum/action.c +4 -9
@@ 1089,16 1089,11 @@ void clear_keyboard_but_mods_and_keys() {
 *
 * FIXME: Needs documentation.
 */
bool is_tap_key(keypos_t key) {
    action_t action = layer_switch_get_action(key);
    return is_tap_action(action);
}

/** \brief Utilities for actions. (FIXME: Needs better description)
 *
 * FIXME: Needs documentation.
 */
bool is_tap_record(keyrecord_t *record) {
    if (IS_NOEVENT(record->event)) {
        return false;
    }

#ifdef COMBO_ENABLE
    action_t action;
    if (record->keycode) {

M quantum/action.h => quantum/action.h +0 -1
@@ 105,7 105,6 @@ void clear_keyboard(void);
void clear_keyboard_but_mods(void);
void clear_keyboard_but_mods_and_keys(void);
void layer_switch(uint8_t new_layer);
bool is_tap_key(keypos_t key);
bool is_tap_record(keyrecord_t *record);
bool is_tap_action(action_t action);


M tests/tap_hold_configurations/default_mod_tap/test_tap_hold.cpp => tests/tap_hold_configurations/default_mod_tap/test_tap_hold.cpp +0 -4
@@ 140,8 140,6 @@ TEST_F(DefaultTapHold, tap_regular_key_while_layer_tap_key_is_held) {
}

TEST_F(DefaultTapHold, tap_mod_tap_hold_key_two_times) {
    GTEST_SKIP() << "TODO:Holding a modtap key results in out of bounds access to the keymap, this is a bug in QMK.";

    TestDriver driver;
    InSequence s;
    auto       mod_tap_hold_key = KeymapKey(0, 1, 0, SFT_T(KC_P));


@@ 175,8 173,6 @@ TEST_F(DefaultTapHold, tap_mod_tap_hold_key_two_times) {
}

TEST_F(DefaultTapHold, tap_mod_tap_hold_key_twice_and_hold_on_second_time) {
    GTEST_SKIP() << "TODO:Holding a modtap key results in out of bounds access to the keymap, this is a bug in QMK.";

    TestDriver driver;
    InSequence s;
    auto       mod_tap_hold_key = KeymapKey(0, 1, 0, SFT_T(KC_P));