Force CPI update using timer when using split pointing. (#23545)
This commit is contained in:
		
							parent
							
								
									340be4bae3
								
							
						
					
					
						commit
						47bc02b2ff
					
				
					 1 changed files with 5 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -710,16 +710,17 @@ static bool pointing_handlers_master(matrix_row_t master_matrix[], matrix_row_t
 | 
			
		|||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
#    endif
 | 
			
		||||
    static uint32_t last_update = 0;
 | 
			
		||||
    static uint16_t last_cpi    = 0;
 | 
			
		||||
    static uint32_t last_update     = 0;
 | 
			
		||||
    static uint32_t last_cpi_update = 0;
 | 
			
		||||
    static uint16_t last_cpi        = 0;
 | 
			
		||||
    report_mouse_t  temp_state;
 | 
			
		||||
    uint16_t        temp_cpi;
 | 
			
		||||
    bool            okay = read_if_checksum_mismatch(GET_POINTING_CHECKSUM, GET_POINTING_DATA, &last_update, &temp_state, &split_shmem->pointing.report, sizeof(temp_state));
 | 
			
		||||
    if (okay) pointing_device_set_shared_report(temp_state);
 | 
			
		||||
    temp_cpi = pointing_device_get_shared_cpi();
 | 
			
		||||
    if (temp_cpi && last_cpi != temp_cpi) {
 | 
			
		||||
    if (temp_cpi) {
 | 
			
		||||
        split_shmem->pointing.cpi = temp_cpi;
 | 
			
		||||
        okay                      = transport_write(PUT_POINTING_CPI, &split_shmem->pointing.cpi, sizeof(split_shmem->pointing.cpi));
 | 
			
		||||
        okay                      = send_if_condition(PUT_POINTING_CPI, &last_cpi_update, last_cpi != temp_cpi, &split_shmem->pointing.cpi, sizeof(split_shmem->pointing.cpi));
 | 
			
		||||
        if (okay) {
 | 
			
		||||
            last_cpi = temp_cpi;
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue