prevent calling contextmenu in embed page by stopping at the caller
This commit is contained in:
parent
1fff58455c
commit
e269dcb4a7
|
@ -522,7 +522,7 @@ function toggleReact() {
|
|||
}
|
||||
|
||||
function onContextmenu(ev: MouseEvent): void {
|
||||
if (props.mock) {
|
||||
if (props.mock || inEmbedPage) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -32,6 +32,8 @@ const props = withDefaults(defineProps<{
|
|||
|
||||
const behavior = props.behavior ?? inject<MkABehavior>('linkNavigationBehavior', null);
|
||||
|
||||
const inEmbedPage = inject<boolean>('EMBED_PAGE', false);
|
||||
|
||||
const el = shallowRef<HTMLElement>();
|
||||
|
||||
defineExpose({ $el: el });
|
||||
|
@ -49,6 +51,8 @@ const active = computed(() => {
|
|||
});
|
||||
|
||||
function onContextmenu(ev) {
|
||||
if (inEmbedPage) return;
|
||||
|
||||
const selection = window.getSelection();
|
||||
if (selection && selection.toString() !== '') return;
|
||||
os.contextMenu([{
|
||||
|
|
|
@ -26,7 +26,6 @@ import { MenuItem } from '@/types/menu.js';
|
|||
import { copyToClipboard } from '@/scripts/copy-to-clipboard.js';
|
||||
import { pleaseLogin } from '@/scripts/please-login.js';
|
||||
import { showMovedDialog } from '@/scripts/show-moved-dialog.js';
|
||||
import { embedPage } from '@/config.js';
|
||||
import { getHTMLElementOrNull } from '@/scripts/get-dom-node-or-null.js';
|
||||
import { focusParent } from '@/scripts/focus.js';
|
||||
|
||||
|
@ -658,8 +657,7 @@ export function popupMenu(items: MenuItem[], src?: HTMLElement | EventTarget | n
|
|||
export function contextMenu(items: MenuItem[], ev: MouseEvent): Promise<void> {
|
||||
if (
|
||||
defaultStore.state.contextMenu === 'native' ||
|
||||
(defaultStore.state.contextMenu === 'appWithShift' && !ev.shiftKey) ||
|
||||
embedPage
|
||||
(defaultStore.state.contextMenu === 'appWithShift' && !ev.shiftKey)
|
||||
) {
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue