Commit Diff


commit - d9e047e5d5560912da6d2860fa25e427322f08bb
commit + 28afa898ee3281afde739c9a09e59264680756ae
blob - 017cb6eae1de69b3d9921c69f8f5d57055edf98d
blob + 16b100ab16451b56b2dec94e16165c30ddc1a769
--- src/cmd/devdraw/osx-screen-carbon.m
+++ src/cmd/devdraw/osx-screen-carbon.m
@@ -182,7 +182,7 @@ classifyTouch(Touch *t)
 	if((t->timestamp - tracks[i].firstThreshTime) < kTimeSensitivity) {
 		return 0;
 	}
-	if(p.y > kButtonLimit && t->size > kSizeSensitivity ) {
+	if(p.y > kButtonLimit && t->size > kSizeSensitivity) {
 		if(p.x < 0.35)
 			return 1;
 		if(p.x > 0.65)
@@ -604,18 +604,18 @@ mouseevent(EventRef event)
 		GetEventParameter(event, kEventParamKeyModifiers,
 			typeUInt32, 0, sizeof mod, 0, &mod);
 		
+		// OS X swaps button 2 and 3
+		but = (but & ~6) | ((but & 4)>>1) | ((but&2)<<1);
+		but = (but & ~((1<<10)-1)) | mouseswap(but & ((1<<10)-1));
 		if(osx.touched) {
 			// in multitouch we use the clicks down to enable our 
 			// virtual buttons.
-			if(but & 0x3)
-				but = but >> 29;
-			else 
+			if(but & 0x7) {
+				if(but>>29)
+					but = but >> 29;
+			} else 
 				but = 0;
 			osx.touched = 0;
-		} else {
-			// OS X swaps button 2 and 3
-			but = (but & ~6) | ((but & 4)>>1) | ((but&2)<<1);
-			but = mouseswap(but);
 		}
 
 		// Apply keyboard modifiers and pretend it was a real mouse button.