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,14 +936,7 @@ 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]) {
|
||||
case NSEraserPointingDevice:
|
||||
|
@ -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