5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-05 23:30:10 +08:00
wails/v3/internal/runtime/desktop/contextmenu.js
2023-06-20 08:49:25 +10:00

33 lines
896 B
JavaScript

import {newRuntimeCaller} from "./runtime";
let call = newRuntimeCaller("contextmenu");
function openContextMenu(id, x, y, data) {
void 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');
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);
}
}
}