Don't set X and Y valuators for indirect touch events
For expediency, it made sense to always have the X and Y axes set for direct touch device event propagation. The last X and Y values are stored internally. However, indirect device touch event propagation does not depend on the touch's X and Y values. Thus, we don't need to set the values for every indirect touch event. On top of this, the previous X and Y values aren't stored for indirect touches, so without this change the axes get erroneously set to 0. Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
		
							parent
							
								
									5201310559
								
							
						
					
					
						commit
						e1085a0da0
					
				| 
						 | 
				
			
			@ -1836,7 +1836,7 @@ GetTouchEvents(InternalEvent *events, DeviceIntPtr dev, uint32_t ddx_touchid,
 | 
			
		|||
    default:
 | 
			
		||||
        return 0;
 | 
			
		||||
    }
 | 
			
		||||
    if (!(flags & TOUCH_CLIENT_ID))
 | 
			
		||||
    if (t->mode == XIDirectTouch && !(flags & TOUCH_CLIENT_ID))
 | 
			
		||||
    {
 | 
			
		||||
        if (!valuator_mask_isset(&mask, 0))
 | 
			
		||||
            valuator_mask_set_double(&mask, 0, valuator_mask_get_double(touchpoint.ti->valuators, 0));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue