+ return 0;
+#else
+ return biton32(default_layer_state);
+#endif
+}
+
+
+#ifndef NO_TRACK_KEY_PRESS
+/* record layer on where key is pressed */
+static uint8_t layer_pressed[MATRIX_ROWS][MATRIX_COLS] = {};
+#endif
+action_t layer_switch_get_action(keyevent_t event)
+{
+ if (IS_NOEVENT(event)) return (action_t)ACTION_NO;
+
+ uint8_t layer = 0;
+#ifndef NO_TRACK_KEY_PRESS
+ if (event.pressed) {
+ layer = current_layer_for_key(event.key);
+ layer_pressed[event.key.row][event.key.col] = layer;
+ } else {
+ layer = layer_pressed[event.key.row][event.key.col];
+ }