From b8b2e9997680bbc0aef074ad0bfb2eb130aafe04 Mon Sep 17 00:00:00 2001 From: Daniel Kao Date: Tue, 26 Jul 2022 11:35:41 -0700 Subject: Constrain Cirque Pinnacle coordinates (#17803) Static x & y should be the same type as touchData.xValue & touchData.yValue: uint16_t. Their delta could be larger than int8_t and should be constrained to mouse_xy_report_t. --- quantum/pointing_device/pointing_device_drivers.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'quantum') diff --git a/quantum/pointing_device/pointing_device_drivers.c b/quantum/pointing_device/pointing_device_drivers.c index d0b545d22d..3780f3d2da 100644 --- a/quantum/pointing_device/pointing_device_drivers.c +++ b/quantum/pointing_device/pointing_device_drivers.c @@ -117,11 +117,11 @@ void cirque_pinnacle_configure_cursor_glide(float trigger_px) { # endif report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report) { - pinnacle_data_t touchData = cirque_pinnacle_read_data(); - mouse_xy_report_t report_x = 0, report_y = 0; - static mouse_xy_report_t x = 0, y = 0; + pinnacle_data_t touchData = cirque_pinnacle_read_data(); + mouse_xy_report_t report_x = 0, report_y = 0; + static uint16_t x = 0, y = 0; # ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE - cursor_glide_t glide_report = {0}; + cursor_glide_t glide_report = {0}; if (cursor_glide_enable) { glide_report = cursor_glide_check(&glide); @@ -154,8 +154,8 @@ report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report) { if (!cirque_pinnacle_gestures(&mouse_report, touchData)) { if (x && y && touchData.xValue && touchData.yValue) { - report_x = (mouse_xy_report_t)(touchData.xValue - x); - report_y = (mouse_xy_report_t)(touchData.yValue - y); + report_x = CONSTRAIN_HID_XY((int16_t)(touchData.xValue - x)); + report_y = CONSTRAIN_HID_XY((int16_t)(touchData.yValue - y)); } x = touchData.xValue; y = touchData.yValue; -- cgit v1.2.3