diff --git a/services/web/frontend/js/features/source-editor/extensions/context-menu.ts b/services/web/frontend/js/features/source-editor/extensions/context-menu.ts index bace4cf171..834484372b 100644 --- a/services/web/frontend/js/features/source-editor/extensions/context-menu.ts +++ b/services/web/frontend/js/features/source-editor/extensions/context-menu.ts @@ -16,6 +16,7 @@ import { Annotation, } from '@codemirror/state' import { closeAllContextMenusEffect } from '../utils/close-all-context-menus-effect' +import { isContextMenuMouseEvent } from '../utils/context-menu-mouse-event' export const openContextMenuEffect = StateEffect.define<{ pos: number @@ -352,7 +353,7 @@ const editorContextMenuHandlers = (): Extension => mousedown(event: MouseEvent, view: EditorView) { const target = event.target as HTMLElement const isGutter = isClickOnGutter(target) - const isRightClick = event.button === 2 || event.ctrlKey + const isRightClick = isContextMenuMouseEvent(event) // Close menu on any click except right-click on non-gutter if (!isRightClick || isGutter) { diff --git a/services/web/frontend/js/features/source-editor/extensions/review-tooltip.ts b/services/web/frontend/js/features/source-editor/extensions/review-tooltip.ts index 0808e76517..e69573ddac 100644 --- a/services/web/frontend/js/features/source-editor/extensions/review-tooltip.ts +++ b/services/web/frontend/js/features/source-editor/extensions/review-tooltip.ts @@ -16,6 +16,7 @@ import { Transaction, } from '@codemirror/state' import { v4 as uuid } from 'uuid' +import { isContextMenuMouseEvent } from '../utils/context-menu-mouse-event' export const addNewCommentRangeEffect = StateEffect.define>() @@ -66,7 +67,7 @@ export const reviewTooltip = (editorContextMenuEnabled = false): Extension => { EditorView.domEventHandlers({ mousedown: (event, view) => { // Hide tooltip when opening the context menu - if (editorContextMenuEnabled && (event.button === 2 || event.ctrlKey)) { + if (editorContextMenuEnabled && isContextMenuMouseEvent(event)) { return false } diff --git a/services/web/frontend/js/features/source-editor/utils/context-menu-mouse-event.ts b/services/web/frontend/js/features/source-editor/utils/context-menu-mouse-event.ts new file mode 100644 index 0000000000..71069dcf46 --- /dev/null +++ b/services/web/frontend/js/features/source-editor/utils/context-menu-mouse-event.ts @@ -0,0 +1,5 @@ +import { isMac } from '@/shared/utils/os' + +export function isContextMenuMouseEvent(event: MouseEvent): boolean { + return event.button === 2 || (isMac && event.button === 0 && event.ctrlKey) +}