We are having a problem where we click an icon in our application while a go.Textbox is in edit mode, and we open a jQuery dialog. From that point forward all the input from the dialog seems to be sent to the Textbox and it virtually locks up the web browser.
Is there a way to force the TextEditTool to stop editing of a go.TextBox when the user click somewhere on the web browser outside of the GoJS diagram view port. In the forum there are several mentions of the TextEditTool exiting the edit mode if we click on an area within the diagram view away from the TextBox but I did not see anything about if you click outside of the diagram viewport.
Tested this in IE 11.
BTW in previous of GoJS ( > 1.7) we did not experience this issue.
if (myDiagram.currentTool instanceof go.TextEditingTool) {
myDiagram.toolManager.textEditingTool.acceptText(go.TextEditingTool.MouseDown);
}
There may be better solutions, but perhaps you should review your code to see if you already created a solution for this (maybe with our help), and that solution is for some reason no longer working with 1.7. We are very interested in any incompatibilities here so please let us know.
I implemented something like this before I posted. However I was looking for something more elegant like capturing a lost focus event for the diagram or for the textbox control. I am thinking of using something like JQuery to bind the focousout() event to the container div of the diagram. That way I can effectively build an lost focus on the entire diagram and end the textEditingTool with something like this
if (diagram)
{
if (diagram.currentTool instanceof go.TextEditingTool) {
diagram.currentTool.acceptText(go.TextEditingTool.LostFocus);
}
}
That did not work well. The focusout event fired even when simply adding a new textbox because the text box became the new element of focus. Is it possible to wire the focusout event directly to the textbox upon creating the textbox. That would be ideal.
It might be easier to implement your own text editor. In version 1.7, take a look at HTMLInfo Text Editor and http://gojs.net/latest/extensions/TextEditor.js. This is basically how the built-in text editor is implemented. Perhaps you can adapt that code to get the behavior that you want.