5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-02 07:21:32 +08:00
wails/v3/internal/runtime/desktop/contextmenu.js
2023-02-10 08:25:52 +11:00

33 lines
901 B
JavaScript

import {newRuntimeCaller} from "./runtime";
let call = newRuntimeCaller("contextmenu");
function openContextMenu(id, x, y, data) {
return call("OpenContextMenu", {id, x, y, data});
}
export function enableContextMenus(enabled) {
if (enabled) {
window.addEventListener('contextmenu', contextMenuHandler);
} else {
window.removeEventListener('contextmenu', contextMenuHandler);
}
}
function contextMenuHandler(event) {
processContextMenu(event.target, event);
}
function processContextMenu(element, event) {
let id = element.getAttribute('data-contextmenu-id');
if (id) {
event.preventDefault();
openContextMenu(id, event.clientX, event.clientY, element.getAttribute('data-contextmenu-data'));
} else {
let parent = element.parentElement;
if (parent) {
processContextMenu(parent, event);
}
}
}