Commit Diff


commit - fb243a134de240cfafd3eb9db4545d0db5f01638
commit + 7d419a14214394e2f9523b78d4b9db59d7c9a025
blob - 4babbf95d57e9b068c3e16e0e355b2331d5a0f26
blob + ee20d6315ad040798513430f655d8060ba8348f3
--- src/cmd/devdraw/osx-screen-carbon.m
+++ src/cmd/devdraw/osx-screen-carbon.m
@@ -204,14 +204,16 @@ touchCallback(int device, Touch *data, int nFingers, d
 	CGPoint p;
 	CGEventRef e;
 
+	p.x = osx.xy.x+osx.screenr.min.x;
+	p.y = osx.xy.y+osx.screenr.min.y;
+	if(!ptinrect(Pt(p.x, p.y), osx.screenr))
+		return 0;
 	osx.touched = 1;
 	buttons = 0;
 	for(i = 0; i < nFingers; ++i)
 		buttons |= classifyTouch(data+i);
 	delta = buttons ^ obuttons;
 	obuttons = buttons;
-	p.x = osx.xy.x+osx.screenr.min.x;
-	p.y = osx.xy.y+osx.screenr.min.y;
 	if(delta & 1) {
 		e = CGEventCreateMouseEvent(NULL, 
 			(buttons & 1) ? kCGEventOtherMouseDown : kCGEventOtherMouseUp, 
@@ -886,6 +888,7 @@ activated(int active)
 			MTDeviceStart([osx.devicelist objectAtIndex:i], 0); //start sending events 
 		} 
 	} else {
+		osx.xy.x = -10000;
 		for(i = 0; i<[osx.devicelist count]; i++) { //iterate available devices 
 			MTDeviceStop([osx.devicelist objectAtIndex:i]); //stop sending events 
 		}