Browse Source

Don't clear keys on layer change unless STRICT_LAYER_RELEASE is enabled (#18577)

* Don't clear mousekeys unless clearing keys

* Revert "Don't clear mousekeys unless clearing keys"

This reverts commit 29a0c06b547d72b80d416a8b6fab478c77fbd247.

* Just don't clear anything on layer set

* Fix lint

* Enable test?
Drashna Jaelre 2 years ago
parent
commit
1caedd10c4
2 changed files with 4 additions and 5 deletions
  1. 4 4
      quantum/action_layer.c
  2. 0 1
      tests/basic/test_action_layer.cpp

+ 4 - 4
quantum/action_layer.c

@@ -45,9 +45,9 @@ static void default_layer_state_set(layer_state_t state) {
     default_layer_state = state;
     default_layer_debug();
     debug("\n");
-#ifdef STRICT_LAYER_RELEASE
+#if defined(STRICT_LAYER_RELEASE)
     clear_keyboard_but_mods(); // To avoid stuck keys
-#else
+#elif defined(SEMI_STRICT_LAYER_RELEASE)
     clear_keyboard_but_mods_and_keys(); // Don't reset held keys
 #endif
 }
@@ -125,9 +125,9 @@ void layer_state_set(layer_state_t state) {
     layer_state = state;
     layer_debug();
     dprintln();
-#    ifdef STRICT_LAYER_RELEASE
+#    if defined(STRICT_LAYER_RELEASE)
     clear_keyboard_but_mods(); // To avoid stuck keys
-#    else
+#    elif defined(SEMI_STRICT_LAYER_RELEASE)
     clear_keyboard_but_mods_and_keys(); // Don't reset held keys
 #    endif
 }

+ 0 - 1
tests/basic/test_action_layer.cpp

@@ -360,7 +360,6 @@ TEST_F(ActionLayer, LayerTapToggleWithToggleWithKeypress) {
 }
 
 TEST_F(ActionLayer, LayerTapReleasedBeforeKeypressReleaseWithModifiers) {
-    GTEST_SKIP() << "TODO: Modifiers are erroneously discarded on layer changes, although a key that introduced the modifier is still held.";
     TestDriver driver;
     InSequence s;