in frontend/src/lib/cytoscape-cxtmenu/cxtmenu.js [414:471]
function openMenu() {
if (!commands || commands.length === 0) { return; }
zoomEnabled = cy.userZoomingEnabled();
cy.userZoomingEnabled(false);
panEnabled = cy.userPanningEnabled();
cy.userPanningEnabled(false);
boxEnabled = cy.boxSelectionEnabled();
cy.boxSelectionEnabled(false);
grabbable = target.grabbable && target.grabbable();
if (grabbable) {
target.ungrabify();
}
let rp; let rw; let
rh;
if (!isCy && ele.isNode() && !ele.isParent() && !options.atMouse) {
rp = ele.renderedPosition();
rw = ele.renderedOuterWidth();
rh = ele.renderedOuterHeight();
} else {
rp = e.renderedPosition || e.cyRenderedPosition;
rw = 1;
rh = 1;
}
offset = getOffset(container);
ctrx = rp.x;
ctry = rp.y;
r = rw / 2 + options.menuRadius(target);
containerSize = (r + options.activePadding) * 2;
updatePixelRatio();
setStyles(parent, {
width: `${containerSize}px`,
height: `${containerSize}px`,
display: 'block',
left: `${rp.x - r}px`,
top: `${rp.y - r}px`,
});
createMenuItems();
rs = Math.max(rw, rh) / 2;
rs = Math.max(rs, options.minSpotlightRadius);
rs = Math.min(rs, options.maxSpotlightRadius);
queueDrawBg(r);
activeCommandI = undefined;
inGesture = true;
gestureStartEvent = e;
}