Estoy tratando de agregar funcionalidad a un diagrama go.js de modo que solo puede crear enlaces cuando se presiona la tecla Mayús. Puedo hacer eso bien. Pero como consecuencia, no quiero que el usuario pueda mover el nodo cuando se presiona la tecla shift.
Para lograr la parte 1, linkingTool.canStart . Esto logró ese objetivo admirablemente.
Para lograr la parte 2, anulé draggingTool.canStart . Esto detiene la capacidad de arrastrar nodos, pero rompe la parte 1 con un Uncaught TypeError: this.findLinkablePort is not a function .
tool = myDiagram.toolManager.linkingTool tool.canStart = function(){ return event.shiftKey && go.LinkingTool.prototype.canStart.call(tool) } tool = myDiagram.toolManager.draggingTool tool.canStart = function(){ return !event.shiftKey && go.DraggingTool.prototype.canStart.call(tool) } Mi suposición es que linkingTool usa draggingTool de alguna manera, pero no puedo encontrar eso en la API y no sé qué puedo hacer para solucionarlo. ¿Alguna idea sobre lo que esta pasando?
No puede depender del event en event.shiftKey . En su lugar, use this.diagram.lastInput.shift .