@@ -139,22 +139,32 @@ void clickMouse(MMMouseButton button)
139139 * Special function for sending double clicks, needed for Mac OS X.
140140 * @param button Button to click.
141141 */
142- void doubleClick (MMMouseButton button )
143- {
142+ void doubleClick (MMMouseButton button ) {
144143 /* Double click for Mac. */
145144 const CGPoint currentPos = CGPointFromMMPoint (getMousePos ());
146145 const CGEventType mouseTypeDown = MMMouseToCGEventType (true, button );
147- const CGEventType mouseTypeUP = MMMouseToCGEventType (false, button );
146+ const CGEventType mouseTypeUp = MMMouseToCGEventType (false, button );
148147
149148 CGEventSourceRef src = CGEventSourceCreate (kCGEventSourceStateHIDSystemState );
150- CGEventRef event = CGEventCreateMouseEvent (src , mouseTypeDown , currentPos , kCGMouseButtonLeft );
149+ CGEventRef event = CGEventCreateMouseEvent (src , mouseTypeDown , currentPos ,
150+ button );
151151
152152 /* Set event to double click. */
153153 CGEventSetIntegerValueField (event , kCGMouseEventClickState , 2 );
154154
155+ // First down
156+ CGEventPost (kCGHIDEventTap , event );
157+
158+ // First up
159+ CGEventSetType (event , mouseTypeUp );
160+ CGEventPost (kCGHIDEventTap , event );
161+
162+ // Second down
163+ CGEventSetType (event , mouseTypeDown );
155164 CGEventPost (kCGHIDEventTap , event );
156165
157- CGEventSetType (event , mouseTypeUP );
166+ // Second up
167+ CGEventSetType (event , mouseTypeUp );
158168 CGEventPost (kCGHIDEventTap , event );
159169
160170 CFRelease (event );
0 commit comments