Bug 1615732 - Don't treat control-left-click on mac as a right-click; r=masayuki

Differential Revision: https://phabricator.services.mozilla.com/D62968

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Edgar Chen 2020-04-06 20:56:12 +00:00
parent c7560c016c
commit e8b067a7e7
2 changed files with 17 additions and 6 deletions

View File

@ -1562,6 +1562,14 @@
value: @IS_NIGHTLY_BUILD@
mirror: always
#if defined(XP_MACOSX)
# Whether to disable treating ctrl click as right click
- name: dom.event.treat_ctrl_click_as_right_click.disabled
type: bool
value: @IS_NIGHTLY_BUILD@
mirror: always
#endif
# Enable clipboard readText() and writeText() by default
- name: dom.events.asyncClipboard
type: bool

View File

@ -3159,8 +3159,6 @@ NSEvent* gLastDragMouseDownEvent = nil; // [strong]
return;
}
NSUInteger modifierFlags = [theEvent modifierFlags];
WidgetMouseEvent geckoEvent(true, eMouseDown, mGeckoChild, WidgetMouseEvent::eReal);
[self convertCocoaMouseEvent:theEvent toGeckoEvent:&geckoEvent];
@ -3172,10 +3170,12 @@ NSEvent* gLastDragMouseDownEvent = nil; // [strong]
}
geckoEvent.mClickCount = clickCount;
if (modifierFlags & NSControlKeyMask)
if (!StaticPrefs::dom_event_treat_ctrl_click_as_right_click_disabled() &&
([theEvent modifierFlags] & NSControlKeyMask)) {
geckoEvent.mButton = MouseButton::eRight;
else
} else {
geckoEvent.mButton = MouseButton::eLeft;
}
mGeckoChild->DispatchInputEvent(&geckoEvent);
mBlockedLastMouseDown = NO;
@ -3199,10 +3199,13 @@ NSEvent* gLastDragMouseDownEvent = nil; // [strong]
WidgetMouseEvent geckoEvent(true, eMouseUp, mGeckoChild, WidgetMouseEvent::eReal);
[self convertCocoaMouseEvent:theEvent toGeckoEvent:&geckoEvent];
if ([theEvent modifierFlags] & NSControlKeyMask)
if (!StaticPrefs::dom_event_treat_ctrl_click_as_right_click_disabled() &&
([theEvent modifierFlags] & NSControlKeyMask)) {
geckoEvent.mButton = MouseButton::eRight;
else
} else {
geckoEvent.mButton = MouseButton::eLeft;
}
// Remember the event's position before calling DispatchInputEvent, because
// that call can mutate it and convert it into a different coordinate space.