URI: 
       tdevdraw: fewer spurious mouse clicks in OS X multitouch - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 7d419a14214394e2f9523b78d4b9db59d7c9a025
   DIR parent fb243a134de240cfafd3eb9db4545d0db5f01638
  HTML Author: Russ Cox <rsc@swtch.com>
       Date:   Fri, 15 Jan 2010 00:01:12 -0800
       
       devdraw: fewer spurious mouse clicks in OS X multitouch
       
       Was turning all button touches into clicks of high
       buttons, causing spurious clicks even outside the
       app window.
       
       R=rsc
       http://codereview.appspot.com/189084
       
       Diffstat:
         M src/cmd/devdraw/osx-screen-carbon.m |       7 +++++--
       
       1 file changed, 5 insertions(+), 2 deletions(-)
       ---
   DIR diff --git a/src/cmd/devdraw/osx-screen-carbon.m b/src/cmd/devdraw/osx-screen-carbon.m
       t@@ -204,14 +204,16 @@ touchCallback(int device, Touch *data, int nFingers, double timestamp, int frame
                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, 
       t@@ -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 
                        }