aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss Cox <rsc@swtch.com>2010-02-06 22:16:46 -0800
committerRuss Cox <rsc@swtch.com>2010-02-06 22:16:46 -0800
commit28afa898ee3281afde739c9a09e59264680756ae (patch)
tree837ebf218e0e00e301ea0ea6a0da3848532a4c6a
parentd9e047e5d5560912da6d2860fa25e427322f08bb (diff)
downloadplan9port-28afa898ee3281afde739c9a09e59264680756ae.tar.gz
plan9port-28afa898ee3281afde739c9a09e59264680756ae.tar.bz2
plan9port-28afa898ee3281afde739c9a09e59264680756ae.zip
devdraw: fix support for multitouch trackpads
R=rsc http://codereview.appspot.com/203059
-rw-r--r--src/cmd/devdraw/osx-screen-carbon.m16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/cmd/devdraw/osx-screen-carbon.m b/src/cmd/devdraw/osx-screen-carbon.m
index 017cb6ea..16b100ab 100644
--- a/src/cmd/devdraw/osx-screen-carbon.m
+++ b/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.