Fix split pointing for analog joystick (#15691)

Co-authored-by: Nick Brassel <nick@tzarc.org>
This commit is contained in:
Dasky 2021-12-31 23:38:23 +00:00 committed by GitHub
parent cbb51eacb0
commit 4fe6f3cd7a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -631,10 +631,12 @@ static void pointing_handlers_slave(matrix_row_t master_matrix[], matrix_row_t s
} }
last_exec = timer_read32(); last_exec = timer_read32();
# endif # endif
temp_cpi = pointing_device_driver.get_cpi(); temp_cpi = !pointing_device_driver.get_cpi ? 0 : pointing_device_driver.get_cpi(); // check for NULL
if (split_shmem->pointing.cpi && memcmp(&split_shmem->pointing.cpi, &temp_cpi, sizeof(temp_cpi)) != 0) { if (split_shmem->pointing.cpi && memcmp(&split_shmem->pointing.cpi, &temp_cpi, sizeof(temp_cpi)) != 0) {
if (pointing_device_driver.set_cpi) {
pointing_device_driver.set_cpi(split_shmem->pointing.cpi); pointing_device_driver.set_cpi(split_shmem->pointing.cpi);
} }
}
memset(&temp_report, 0, sizeof(temp_report)); memset(&temp_report, 0, sizeof(temp_report));
temp_report = pointing_device_driver.get_report(temp_report); temp_report = pointing_device_driver.get_report(temp_report);
memcpy(&split_shmem->pointing.report, &temp_report, sizeof(temp_report)); memcpy(&split_shmem->pointing.report, &temp_report, sizeof(temp_report));