aboutsummaryrefslogtreecommitdiff
path: root/quantum/split_common
diff options
context:
space:
mode:
authorNoOne2246 <[email protected]>2024-04-09 04:55:42 +1000
committerGitHub <[email protected]>2024-04-08 12:55:42 -0600
commitb99143fdd2637f573bb8c2632a38b84acc1945a0 (patch)
tree017fde6c69fcb6866ce03cb778b0bca0b3027db9 /quantum/split_common
parentcd94664d1514cb7095b24f28574390498fb2c036 (diff)
downloadqmk_firmware-b99143fdd2637f573bb8c2632a38b84acc1945a0.tar.gz
qmk_firmware-b99143fdd2637f573bb8c2632a38b84acc1945a0.zip
Oneshot locked mods split transaction (#23434)
Diffstat (limited to 'quantum/split_common')
-rw-r--r--quantum/split_common/transactions.c5
-rw-r--r--quantum/split_common/transport.h1
2 files changed, 6 insertions, 0 deletions
diff --git a/quantum/split_common/transactions.c b/quantum/split_common/transactions.c
index 33bc9e9f57..decf5e5ede 100644
--- a/quantum/split_common/transactions.c
+++ b/quantum/split_common/transactions.c
@@ -419,6 +419,10 @@ static bool mods_handlers_master(matrix_row_t master_matrix[], matrix_row_t slav
if (!mods_need_sync && new_mods.oneshot_mods != split_shmem->mods.oneshot_mods) {
mods_need_sync = true;
}
+ new_mods.oneshot_locked_mods = get_oneshot_locked_mods();
+ if (!mods_need_sync && new_mods.oneshot_locked_mods != split_shmem->mods.oneshot_locked_mods) {
+ mods_need_sync = true;
+ }
# endif // NO_ACTION_ONESHOT
bool okay = true;
@@ -442,6 +446,7 @@ static void mods_handlers_slave(matrix_row_t master_matrix[], matrix_row_t slave
set_weak_mods(mods.weak_mods);
# ifndef NO_ACTION_ONESHOT
set_oneshot_mods(mods.oneshot_mods);
+ set_oneshot_locked_mods(mods.oneshot_locked_mods);
# endif
}
diff --git a/quantum/split_common/transport.h b/quantum/split_common/transport.h
index 4f6b968fa8..fbd87ca312 100644
--- a/quantum/split_common/transport.h
+++ b/quantum/split_common/transport.h
@@ -101,6 +101,7 @@ typedef struct _split_mods_sync_t {
uint8_t weak_mods;
# ifndef NO_ACTION_ONESHOT
uint8_t oneshot_mods;
+ uint8_t oneshot_locked_mods;
# endif // NO_ACTION_ONESHOT
} split_mods_sync_t;
#endif // SPLIT_MODS_ENABLE