diff options
| author | QMK Bot <[email protected]> | 2021-02-04 01:25:39 +0000 | 
|---|---|---|
| committer | QMK Bot <[email protected]> | 2021-02-04 01:25:39 +0000 | 
| commit | 711388d3e380dd2bb4c8e3e060fa7a599722b83c (patch) | |
| tree | ecf8b282ad40307676ec485f3b205cafdf663e1f /quantum/pointing_device.c | |
| parent | 1861ace7d2d27ead04ee242cabd286e64c6d5f19 (diff) | |
| parent | 780ca5565d2bdb8e03aa2669a3203373a0a4d9dd (diff) | |
| download | qmk_firmware-711388d3e380dd2bb4c8e3e060fa7a599722b83c.tar.gz qmk_firmware-711388d3e380dd2bb4c8e3e060fa7a599722b83c.zip | |
Merge remote-tracking branch 'origin/master' into develop
Diffstat (limited to 'quantum/pointing_device.c')
| -rw-r--r-- | quantum/pointing_device.c | 16 | 
1 files changed, 15 insertions, 1 deletions
| diff --git a/quantum/pointing_device.c b/quantum/pointing_device.c index 9b7629f307..fbcc08e6dd 100644 --- a/quantum/pointing_device.c +++ b/quantum/pointing_device.c @@ -25,18 +25,32 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  static report_mouse_t mouseReport = {}; +__attribute__((weak)) bool has_mouse_report_changed(report_mouse_t new, report_mouse_t old) { +    return (new.buttons != old.buttons) || +           (new.x && new.x != old.x) || +           (new.y && new.y != old.y) || +           (new.h && new.h != old.h) || +           (new.v && new.v != old.v); +} + +  __attribute__((weak)) void pointing_device_init(void) {      // initialize device, if that needs to be done.  }  __attribute__((weak)) void pointing_device_send(void) { +    static report_mouse_t old_report = {}; +      // If you need to do other things, like debugging, this is the place to do it. -    host_mouse_send(&mouseReport); +    if (has_mouse_report_changed(mouseReport, old_report)) { +        host_mouse_send(&mouseReport); +    }      // send it and 0 it out except for buttons, so those stay until they are explicity over-ridden using update_pointing_device      mouseReport.x = 0;      mouseReport.y = 0;      mouseReport.v = 0;      mouseReport.h = 0; +    old_report = mouseReport;  }  __attribute__((weak)) void pointing_device_task(void) { | 
