diff --git a/quantum/action_util.c b/quantum/action_util.c index 9f0f9ec71b..361f410d2d 100644 --- a/quantum/action_util.c +++ b/quantum/action_util.c @@ -282,24 +282,17 @@ void send_keyboard_report(void) { keyboard_report->mods |= weak_override_mods; #endif +#ifdef PROTOCOL_VUSB + host_keyboard_send(keyboard_report); +#else static report_keyboard_t last_report; -#if defined(REPORT_MODS_SEPARATELY) - if (last_report.mods != keyboard_report->mods) { - //build a keyboard report that only updates the mods - report_keyboard_t mod_report; - memcpy(&mod_report, &last_report, sizeof(report_keyboard_t)); - mod_report.mods = keyboard_report->mods; - - host_keyboard_send(&mod_report); - memcpy(&last_report, &mod_report, sizeof(report_keyboard_t)); + /* Only send the report if there are changes to propagate to the host. */ + if (memcmp(keyboard_report, &last_report, sizeof(report_keyboard_t)) != 0) { + memcpy(&last_report, keyboard_report, sizeof(report_keyboard_t)); + host_keyboard_send(keyboard_report); } #endif - - if (memcmp(&last_report, keyboard_report, sizeof(report_keyboard_t)) != 0) { - host_keyboard_send(keyboard_report); - memcpy(&last_report, keyboard_report, sizeof(report_keyboard_t)); - } } /** \brief Get mods