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:
Jeremy Huddleston 2008-09-30 11:10:58 -07:00
parent 1657dfb843
commit d3f597a986

View File

@ -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;
}