From 7ab2011d3b6bb7bb2e945265d4ff97983a5a1f38 Mon Sep 17 00:00:00 2001 From: bobzel Date: Tue, 14 Sep 2021 19:13:34 -0400 Subject: fixed right-click context menu for Windows. --- src/Utils.ts | 30 +++++++++++++++++------------- src/client/views/nodes/DocumentView.tsx | 9 +++++++-- 2 files changed, 24 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/Utils.ts b/src/Utils.ts index ddc16dceb..6eacd8296 100644 --- a/src/Utils.ts +++ b/src/Utils.ts @@ -552,19 +552,23 @@ export function simulateMouseClick(element: Element | null | undefined, x: numbe screenY: sy, }))); - rightClick && element.dispatchEvent( - new MouseEvent("contextmenu", { - view: window, - bubbles: true, - cancelable: true, - button: 2, - clientX: x, - clientY: y, - movementX: 0, - movementY: 0, - screenX: sx, - screenY: sy, - })); + if (rightClick) { + const me = + new MouseEvent("contextmenu", { + view: window, + bubbles: true, + cancelable: true, + button: 2, + clientX: x, + clientY: y, + movementX: 0, + movementY: 0, + screenX: sx, + screenY: sy, + }); + (me as any).dash = true; + element.dispatchEvent(me); + } } export function lightOrDark(color: any) { diff --git a/src/client/views/nodes/DocumentView.tsx b/src/client/views/nodes/DocumentView.tsx index 5ef49bd3b..b680fcf3b 100644 --- a/src/client/views/nodes/DocumentView.tsx +++ b/src/client/views/nodes/DocumentView.tsx @@ -672,7 +672,7 @@ export class DocumentViewInternal extends DocComponent setTimeout(() => { DocumentViewInternal.SelectAfterContextMenu && !this.props.isSelected(true) && SelectionManager.SelectView(this.props.DocumentView(), false); // on a mac, the context menu is triggered on mouse down, but a YouTube video becaomes interactive when selected which means that the context menu won't show up. by delaying the selection until hopefully after the pointer up, the context menu will appear. setTimeout(() => { @@ -680,7 +680,12 @@ export class DocumentViewInternal extends DocComponent