Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 31 additions & 32 deletions macpaste.c
Original file line number Diff line number Diff line change
Expand Up @@ -87,42 +87,41 @@ static void paste(CGEventRef event) {
return isDoubleClickSpeed();
}

static CGEventRef mouseCallback (
CGEventTapProxy proxy,
CGEventType type,
CGEventRef event,
void * refcon
) {
int* dontpaste = refcon;
switch ( type )
{
case kCGEventOtherMouseDown:
if (*dontpaste == 0)
paste( event );
break;

case kCGEventLeftMouseDown:
recordClickTime();
break;
static CGEventRef mouseCallback (
CGEventTapProxy proxy,
CGEventType type,
CGEventRef event,
void * refcon
) {
int* dontpaste = refcon;
switch (type) {
case kCGEventLeftMouseDown:
recordClickTime();
// Paste on a single left-click (if it's not a double-click or dragging).
if (*dontpaste == 0 && !isDoubleClick() && !isDragging) {
paste(event);
}
break;

case kCGEventLeftMouseUp:
if ( isDoubleClick() || isDragging ) {
copy();
}
isDragging = 0;
break;
case kCGEventLeftMouseUp:
// Trigger copy only if it's a double-click or dragging event.
if (isDoubleClick() || isDragging) {
copy();
}
isDragging = 0;
break;

case kCGEventLeftMouseDragged:
isDragging = 1;
break;
case kCGEventLeftMouseDragged:
isDragging = 1;
break;

default:
break;
}
default:
break;
}

// Pass on the event, we must not modify it anyway, we are a listener
return event;
}
// Pass on the event, we must not modify it anyway, we are a listener.
return event;
}

int main (
int argc,
Expand Down