- /* Check if the idle period is set*/\r
- if (IdleCount)\r
- {\r
- /* Determine if the idle period has elapsed */\r
- if (!(IdleMSRemaining))\r
- {\r
- /* Reset the idle time remaining counter, must multiply by 4 to get the duration in milliseconds */\r
- IdleMSRemaining = (IdleCount << 2); \r
- }\r
- else\r
- {\r
- /* Idle period not elapsed, indicate that a report must not be sent unless the report has changed */\r
- SendReport = (memcmp(&PrevMouseReportData, &MouseReportData, sizeof(USB_MouseReport_Data_t)) != 0);\r
- }\r
- }\r
-\r
+ /* Check to see if the report data has changed - if so a report MUST be sent */\r
+ SendReport = (memcmp(&PrevMouseReportData, &MouseReportData, sizeof(USB_MouseReport_Data_t)) != 0);\r
+ \r
+ /* Override the check if the Y or X values are non-zero - we want continuous movement while the joystick\r
+ * is being held down (via continuous reports), otherwise the cursor will only move once per joystick toggle */\r
+ if ((MouseReportData.Y != 0) || (MouseReportData.X != 0))\r
+ SendReport = true;\r
+ \r