mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-02 07:21:32 +08:00
33 lines
901 B
JavaScript
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);
|
|
}
|
|
}
|
|
}
|