Skip to content

Commit 8b6d1e3

Browse files
authored
Fix menuitem listeners in MacOS (#55)
1 parent bf52639 commit 8b6d1e3

File tree

3 files changed

+21
-12
lines changed

3 files changed

+21
-12
lines changed

src/second_sidebar/controllers/sidebar_main.mjs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { SidebarMain } from "../xul/sidebar_main.mjs";
44
import { SidebarMainMenuPopup } from "../xul/sidebar_main_menupopup.mjs";
55
import { SidebarMainSettingsController } from "./sidebar_main_settings.mjs";
66
import { XULElement } from "../xul/base/xul_element.mjs";
7+
import { isRightMouseButton } from "../utils/buttons.mjs";
78
/* eslint-enable no-unused-vars */
89

910
export class SidebarMainController {
@@ -32,11 +33,15 @@ export class SidebarMainController {
3233
}
3334

3435
#setupListeners() {
35-
this.sidebarMainMenuPopup.listenSettingsItemClick((event) => {
36-
this.sidebarMainSettingsController.openPopup(
37-
event.screenX,
38-
event.screenY,
39-
);
36+
this.sidebarMain.addEventListener("mousedown", (event) => {
37+
if (isRightMouseButton(event)) {
38+
this.mouseX = event.clientX;
39+
this.mouseY = event.clientY;
40+
}
41+
});
42+
43+
this.sidebarMainMenuPopup.listenSettingsItemClick(() => {
44+
this.sidebarMainSettingsController.openPopup(this.mouseX, this.mouseY);
4045
});
4146

4247
this.sidebarMainMenuPopup.listenCustomizeItemClick(() => {

src/second_sidebar/xul/sidebar_main_menupopup.mjs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ export class SidebarMainMenuPopup extends MenuPopup {
1111

1212
this.settingsItem = new MenuItem().setLabel("Sidebar settings");
1313
this.customizeItem = new MenuItem().setLabel("Customize Toolbar...");
14+
this.#compose();
15+
}
16+
17+
#compose() {
1418
this.appendChildren(
1519
this.settingsItem,
1620
new MenuSeparator(),
@@ -23,8 +27,8 @@ export class SidebarMainMenuPopup extends MenuPopup {
2327
* @param {function(MouseEvent):void} callback
2428
*/
2529
listenSettingsItemClick(callback) {
26-
this.settingsItem.addEventListener("click", (event) => {
27-
callback(event);
30+
this.settingsItem.addEventListener("command", () => {
31+
callback();
2832
});
2933
}
3034

@@ -33,7 +37,7 @@ export class SidebarMainMenuPopup extends MenuPopup {
3337
* @param {function(MouseEvent):void} callback
3438
*/
3539
listenCustomizeItemClick(callback) {
36-
this.customizeItem.addEventListener("click", (event) => {
40+
this.customizeItem.addEventListener("command", (event) => {
3741
callback(event);
3842
});
3943
}

src/second_sidebar/xul/web_panel_button_menupopup.mjs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ export class WebPanelButtonMenuPopup extends MenuPopup {
4949
* @param {WebPanelsController} webPanelsController
5050
*/
5151
listenUnloadItemClick(callback) {
52-
this.unloadItem.addEventListener("click", () => {
52+
this.unloadItem.addEventListener("command", () => {
5353
callback(this.webPanelController);
5454
});
5555
}
@@ -59,7 +59,7 @@ export class WebPanelButtonMenuPopup extends MenuPopup {
5959
* @param {WebPanelsController} webPanelsController
6060
*/
6161
listenEditItemClick(callback) {
62-
this.editItem.addEventListener("click", () => {
62+
this.editItem.addEventListener("command", () => {
6363
callback(this.webPanelController);
6464
});
6565
}
@@ -69,7 +69,7 @@ export class WebPanelButtonMenuPopup extends MenuPopup {
6969
* @param {WebPanelsController} webPanelsController
7070
*/
7171
listenDeleteItemClick(callback) {
72-
this.deleteItem.addEventListener("click", () => {
72+
this.deleteItem.addEventListener("command", () => {
7373
callback(this.webPanelController);
7474
});
7575
}
@@ -79,7 +79,7 @@ export class WebPanelButtonMenuPopup extends MenuPopup {
7979
* @param {function(MouseEvent):void} callback
8080
*/
8181
listenCustomizeItemClick(callback) {
82-
this.customizeItem.addEventListener("click", (event) => {
82+
this.customizeItem.addEventListener("command", (event) => {
8383
callback(event);
8484
});
8585
}

0 commit comments

Comments
 (0)