@@ -139,22 +139,32 @@ void clickMouse(MMMouseButton button)
139
139
* Special function for sending double clicks, needed for Mac OS X.
140
140
* @param button Button to click.
141
141
*/
142
- void doubleClick (MMMouseButton button )
143
- {
142
+ void doubleClick (MMMouseButton button ) {
144
143
/* Double click for Mac. */
145
144
const CGPoint currentPos = CGPointFromMMPoint (getMousePos ());
146
145
const CGEventType mouseTypeDown = MMMouseToCGEventType (true, button );
147
- const CGEventType mouseTypeUP = MMMouseToCGEventType (false, button );
146
+ const CGEventType mouseTypeUp = MMMouseToCGEventType (false, button );
148
147
149
148
CGEventSourceRef src = CGEventSourceCreate (kCGEventSourceStateHIDSystemState );
150
- CGEventRef event = CGEventCreateMouseEvent (src , mouseTypeDown , currentPos , kCGMouseButtonLeft );
149
+ CGEventRef event = CGEventCreateMouseEvent (src , mouseTypeDown , currentPos ,
150
+ button );
151
151
152
152
/* Set event to double click. */
153
153
CGEventSetIntegerValueField (event , kCGMouseEventClickState , 2 );
154
154
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 );
155
164
CGEventPost (kCGHIDEventTap , event );
156
165
157
- CGEventSetType (event , mouseTypeUP );
166
+ // Second up
167
+ CGEventSetType (event , mouseTypeUp );
158
168
CGEventPost (kCGHIDEventTap , event );
159
169
160
170
CFRelease (event );
0 commit comments