XQuartz: Workaround for initial pressure/tilt being sent as 0 with motion during the proximity event
(cherry picked from commit 9a91d770a6411dd876187e64a8bda1f0745169ae)
This commit is contained in:
		
							parent
							
								
									1657dfb843
								
							
						
					
					
						commit
						d3f597a986
					
				| 
						 | 
				
			
			@ -936,13 +936,6 @@ static void send_nsevent(NSEvent *e) {
 | 
			
		|||
            
 | 
			
		||||
        handle_mouse:
 | 
			
		||||
            pDev = darwinPointer;
 | 
			
		||||
			if ([e type] == NSTabletPoint || [e subtype] == NSTabletPointEventSubtype) {
 | 
			
		||||
                pressure = [e pressure];
 | 
			
		||||
                tilt_x   = [e tilt].x;
 | 
			
		||||
                tilt_y   = [e tilt].y;
 | 
			
		||||
                
 | 
			
		||||
                pDev = darwinTabletCurrent;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if([e subtype] == NSTabletProximityEventSubtype) {
 | 
			
		||||
                switch([e pointingDeviceType]) {
 | 
			
		||||
| 
						 | 
				
			
			@ -959,8 +952,25 @@ static void send_nsevent(NSEvent *e) {
 | 
			
		|||
                        break;
 | 
			
		||||
                }
 | 
			
		||||
                
 | 
			
		||||
                /* NSTabletProximityEventSubtype doesn't encode pressure ant tilt
 | 
			
		||||
                 * So we just pretend the motion was caused by the mouse.  Hopefully
 | 
			
		||||
                 * we'll have a better solution for this in the future (like maybe
 | 
			
		||||
                 * NSTabletProximityEventSubtype will come from NSTabletPoint
 | 
			
		||||
                 * rather than NSMouseMoved.
 | 
			
		||||
                pressure = [e pressure];
 | 
			
		||||
                tilt_x   = [e tilt].x;
 | 
			
		||||
                tilt_y   = [e tilt].y;
 | 
			
		||||
                pDev = darwinTabletCurrent;                
 | 
			
		||||
                 */
 | 
			
		||||
 | 
			
		||||
                DarwinSendProximityEvents([e isEnteringProximity]?ProximityIn:ProximityOut,
 | 
			
		||||
                                          pointer_x, pointer_y);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
			if ([e type] == NSTabletPoint || [e subtype] == NSTabletPointEventSubtype) {
 | 
			
		||||
                pressure = [e pressure];
 | 
			
		||||
                tilt_x   = [e tilt].x;
 | 
			
		||||
                tilt_y   = [e tilt].y;
 | 
			
		||||
                
 | 
			
		||||
                pDev = darwinTabletCurrent;
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue