diff --git a/right/src/usb_interfaces/usb_interface_mouse.c b/right/src/usb_interfaces/usb_interface_mouse.c index ab7dea9..59fc669 100644 --- a/right/src/usb_interfaces/usb_interface_mouse.c +++ b/right/src/usb_interfaces/usb_interface_mouse.c @@ -33,6 +33,13 @@ usb_status_t UsbMouseCallback(class_handle_t handle, uint32_t event, void *param switch (event) { case kUSB_DeviceHidEventSendResponse: + if (UsbCompositeDevice.attach) { + // Send out the mouse report continuously if the report is not zeros + usb_mouse_report_t *mouseReport = getInactiveUsbMouseReport(); + uint8_t zeroBuf[sizeof(usb_mouse_report_t)] = { 0 }; + if (memcmp(mouseReport, zeroBuf, sizeof(usb_mouse_report_t)) != 0) + return usbMouseAction(); + } case kUSB_DeviceHidEventGetReport: case kUSB_DeviceHidEventSetReport: case kUSB_DeviceHidEventRequestReportBuffer: