diff --git a/libvo/vo_macosx.m b/libvo/vo_macosx.m index 0cc3645061..8d3c68b541 100644 --- a/libvo/vo_macosx.m +++ b/libvo/vo_macosx.m @@ -1048,17 +1048,23 @@ static int control(uint32_t request, void *data, ...) { if ( [theEvent buttonNumber] >= 0 && [theEvent buttonNumber] <= 9 ) { + int buttonNumber = [theEvent buttonNumber]; + // Fix to mplayer defined button order: left, middle, right + if (buttonNumber == 1) + buttonNumber = 2; + else if (buttonNumber == 1) + buttonNumber = 2; switch([theEvent type]) { case NSLeftMouseDown: case NSRightMouseDown: case NSOtherMouseDown: - mplayer_put_key((MOUSE_BTN0 + [theEvent buttonNumber]) | MP_KEY_DOWN); + mplayer_put_key((MOUSE_BTN0 + buttonNumber) | MP_KEY_DOWN); break; case NSLeftMouseUp: case NSRightMouseUp: case NSOtherMouseUp: - mplayer_put_key(MOUSE_BTN0 + [theEvent buttonNumber]); + mplayer_put_key(MOUSE_BTN0 + buttonNumber); break; } } diff --git a/libvo/vo_quartz.c b/libvo/vo_quartz.c index 017b0e12b0..240291bbf8 100644 --- a/libvo/vo_quartz.c +++ b/libvo/vo_quartz.c @@ -328,10 +328,10 @@ static OSStatus MouseEventHandler(EventHandlerCallRef nextHandler, EventRef even mplayer_put_key(MOUSE_BTN0); break; case kEventMouseButtonSecondary: - mplayer_put_key(MOUSE_BTN1); + mplayer_put_key(MOUSE_BTN2); break; case kEventMouseButtonTertiary: - mplayer_put_key(MOUSE_BTN2); + mplayer_put_key(MOUSE_BTN1); break; default:result = eventNotHandledErr;break; @@ -358,10 +358,10 @@ static OSStatus MouseEventHandler(EventHandlerCallRef nextHandler, EventRef even mplayer_put_key(MOUSE_BTN0 | MP_KEY_DOWN); break; case kEventMouseButtonSecondary: - mplayer_put_key(MOUSE_BTN1 | MP_KEY_DOWN); + mplayer_put_key(MOUSE_BTN2 | MP_KEY_DOWN); break; case kEventMouseButtonTertiary: - mplayer_put_key(MOUSE_BTN2 | MP_KEY_DOWN); + mplayer_put_key(MOUSE_BTN1 | MP_KEY_DOWN); break; default:result = eventNotHandledErr;break;