mirror of
https://github.com/qmk/qmk_firmware.git
synced 2024-11-26 05:06:42 +00:00
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.
This commit is contained in:
parent
c982d6c5e3
commit
b8b2e99976
@ -119,7 +119,7 @@ void cirque_pinnacle_configure_cursor_glide(float trigger_px) {
|
|||||||
report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report) {
|
report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report) {
|
||||||
pinnacle_data_t touchData = cirque_pinnacle_read_data();
|
pinnacle_data_t touchData = cirque_pinnacle_read_data();
|
||||||
mouse_xy_report_t report_x = 0, report_y = 0;
|
mouse_xy_report_t report_x = 0, report_y = 0;
|
||||||
static mouse_xy_report_t x = 0, y = 0;
|
static uint16_t x = 0, y = 0;
|
||||||
# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE
|
# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE
|
||||||
cursor_glide_t glide_report = {0};
|
cursor_glide_t glide_report = {0};
|
||||||
|
|
||||||
@ -154,8 +154,8 @@ report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report) {
|
|||||||
|
|
||||||
if (!cirque_pinnacle_gestures(&mouse_report, touchData)) {
|
if (!cirque_pinnacle_gestures(&mouse_report, touchData)) {
|
||||||
if (x && y && touchData.xValue && touchData.yValue) {
|
if (x && y && touchData.xValue && touchData.yValue) {
|
||||||
report_x = (mouse_xy_report_t)(touchData.xValue - x);
|
report_x = CONSTRAIN_HID_XY((int16_t)(touchData.xValue - x));
|
||||||
report_y = (mouse_xy_report_t)(touchData.yValue - y);
|
report_y = CONSTRAIN_HID_XY((int16_t)(touchData.yValue - y));
|
||||||
}
|
}
|
||||||
x = touchData.xValue;
|
x = touchData.xValue;
|
||||||
y = touchData.yValue;
|
y = touchData.yValue;
|
||||||
|
Loading…
Reference in New Issue
Block a user