|
|
|
|
@ -453,6 +453,27 @@ export class CanvasViewImpl implements CanvasView, Listener {
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function contextmenuHandler(e: MouseEvent): void {
|
|
|
|
|
const pointID = Array.prototype.indexOf
|
|
|
|
|
.call(((e.target as HTMLElement).parentElement as HTMLElement).children, e.target);
|
|
|
|
|
if (self.activeElement.clientID !== null) {
|
|
|
|
|
const [state] = self.controller.objects
|
|
|
|
|
.filter((_state: any): boolean => (
|
|
|
|
|
_state.clientID === self.activeElement.clientID
|
|
|
|
|
));
|
|
|
|
|
self.canvas.dispatchEvent(new CustomEvent('point.contextmenu', {
|
|
|
|
|
bubbles: false,
|
|
|
|
|
cancelable: true,
|
|
|
|
|
detail: {
|
|
|
|
|
mouseEvent: e,
|
|
|
|
|
objectState: state,
|
|
|
|
|
pointID,
|
|
|
|
|
},
|
|
|
|
|
}));
|
|
|
|
|
}
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (value) {
|
|
|
|
|
(shape as any).selectize(value, {
|
|
|
|
|
deepSelect: true,
|
|
|
|
|
@ -475,6 +496,7 @@ export class CanvasViewImpl implements CanvasView, Listener {
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
circle.on('dblclick', dblClickHandler);
|
|
|
|
|
circle.on('contextmenu', contextmenuHandler);
|
|
|
|
|
circle.addClass('cvat_canvas_selected_point');
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
@ -484,6 +506,7 @@ export class CanvasViewImpl implements CanvasView, Listener {
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
circle.off('dblclick', dblClickHandler);
|
|
|
|
|
circle.off('contextmenu', contextmenuHandler);
|
|
|
|
|
circle.removeClass('cvat_canvas_selected_point');
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|