From 8ce946b5c8e7026b5d7337becf4719e2795af9bb Mon Sep 17 00:00:00 2001 From: Stefan Kerkmann Date: Mon, 15 Aug 2022 16:40:51 +0200 Subject: [PATCH] [Bug] Add key event check to `is_tap_record` and remove `is_tap_key` (#18063) --- quantum/action.c | 13 ++++--------- quantum/action.h | 1 - .../default_mod_tap/test_tap_hold.cpp | 4 ---- 3 files changed, 4 insertions(+), 14 deletions(-) diff --git a/quantum/action.c b/quantum/action.c index 83f6e2a970..6b2e9104e0 100644 --- a/quantum/action.c +++ b/quantum/action.c @@ -1085,20 +1085,15 @@ void clear_keyboard_but_mods_and_keys() { #endif } -/** \brief Utilities for actions. (FIXME: Needs better description) - * - * 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) { diff --git a/quantum/action.h b/quantum/action.h index 08e1f6ac29..2bc46429b2 100644 --- a/quantum/action.h +++ b/quantum/action.h @@ -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); diff --git a/tests/tap_hold_configurations/default_mod_tap/test_tap_hold.cpp b/tests/tap_hold_configurations/default_mod_tap/test_tap_hold.cpp index 687a4e0318..e798265623 100644 --- a/tests/tap_hold_configurations/default_mod_tap/test_tap_hold.cpp +++ b/tests/tap_hold_configurations/default_mod_tap/test_tap_hold.cpp @@ -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));