Bug 1398390 - Only react to mousedown if it is a left-click. r=Gijs

MozReview-Commit-ID: Ie2Xgasg2eN
This commit is contained in:
Zibi Braniecki
2017-09-09 22:17:19 -07:00
parent 98d209d7fe
commit 424682e3b6
5 changed files with 13 additions and 3 deletions

View File

@@ -557,7 +557,7 @@ var BrowserPageActions = {
*/
mainButtonClicked(event) {
event.stopPropagation();
if ((event.type == "click" && event.button != 0) ||
if ((event.type == "mousedown" && event.button != 0) ||
(event.type == "keypress" && event.charCode != KeyEvent.DOM_VK_SPACE &&
event.keyCode != KeyEvent.DOM_VK_RETURN)) {
return;

View File

@@ -4230,6 +4230,9 @@ OverflowableToolbar.prototype = {
this._enable();
break;
case "mousedown":
if (aEvent.button != 0) {
break;
}
if (aEvent.target == this._chevron) {
this._onClickChevron(aEvent);
} else {

View File

@@ -359,6 +359,9 @@ const PanelUI = {
let domEvent = null;
if (aEvent) {
if (aEvent.type == "mousedown" && aEvent.button != 0) {
return;
}
if (aEvent.type == "command" && aEvent.inputSource != null) {
// Synthesize a new DOM mouse event to pass on the inputSource.
domEvent = document.createEvent("MouseEvent");

View File

@@ -504,6 +504,10 @@ const DownloadsIndicatorView = {
},
onCommand(aEvent) {
if (aEvent.type == "mousedown" && aEvent.button != 0) {
return;
}
// If the downloads button is in the menu panel, open the Library
let widgetGroup = CustomizableUI.getWidget("downloads-button");
if (widgetGroup.areaType == CustomizableUI.TYPE_MENU_PANEL) {

View File

@@ -38,7 +38,7 @@ add_task(async function test_overflow_anchor() {
await waitForOverflowed(button, true);
let promise = promisePanelOpened();
button.node.dispatchEvent(new Event("mousedown"));
EventUtils.sendMouseEvent({ type: "mousedown", button: 0 }, button.node);
await promise;
let panel = DownloadsPanel.panel;
@@ -58,7 +58,7 @@ add_task(async function test_overflow_anchor() {
// Now try opening the panel again.
promise = promisePanelOpened();
button.node.dispatchEvent(new Event("mousedown"));
EventUtils.sendMouseEvent({ type: "mousedown", button: 0 }, button.node);
await promise;
is(panel.anchorNode.id, "downloads-indicator-anchor");