commit 28afa898ee3281afde739c9a09e59264680756ae from: Russ Cox date: Sun Feb 07 06:16:46 2010 UTC devdraw: fix support for multitouch trackpads R=rsc http://codereview.appspot.com/203059 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.