def press(button=LEFT):
    """ Sends a down event for the specified button, using the provided constants """
    location = get_position()
    button_code, button_down, _, _ = _button_mapping[button]
    e = Quartz.CGEventCreateMouseEvent(
        None,
        button_down,
        location,
        button_code)

    # Check if this is a double-click (same location within the last 300ms)
    if _last_click["time"] is not None and datetime.datetime.now() - _last_click["time"] < datetime.timedelta(seconds=0.3) and _last_click["button"] == button and _last_click["position"] == location:
        # Repeated Click
        _last_click["click_count"] = min(3, _last_click["click_count"]+1)
    else:
        # Not a double-click - Reset last click
        _last_click["click_count"] = 1
    Quartz.CGEventSetIntegerValueField(
        e,
        Quartz.kCGMouseEventClickState,
        _last_click["click_count"])
    Quartz.CGEventPost(Quartz.kCGHIDEventTap, e)
    _button_state[button] = True
    _last_click["time"] = datetime.datetime.now()
    _last_click["button"] = button
    _last_click["position"] = location
def press ( button = LEFT ) : location = get_position ( ) button_code , button_down , _ , _ = _button_mapping [ button ] e = Quartz . CGEventCreateMouseEvent ( None , button_down , location , button_code ) if _last_click [ "time" ] is not None and datetime . datetime . now ( ) - _last_click [ "time" ] < datetime . timedelta ( seconds = 0.3 ) and _last_click [ "button" ] == button and _last_click [ "position" ] == location : _last_click [ "click_count" ] = min ( 3 , _last_click [ "click_count" ] + 1 ) else : _last_click [ "click_count" ] = 1 Quartz . CGEventSetIntegerValueField ( e , Quartz . kCGMouseEventClickState , _last_click [ "click_count" ] ) Quartz . CGEventPost ( Quartz . kCGHIDEventTap , e ) _button_state [ button ] = True _last_click [ "time" ] = datetime . datetime . now ( ) _last_click [ "button" ] = button _last_click [ "position" ] = location
Sends a down event for the specified button, using the provided constants