diff -r 9ed54b10ce16 -r e1e14766f608 src_js/iconolab-bundle/src/components/cutout/svgboard.js --- a/src_js/iconolab-bundle/src/components/cutout/svgboard.js Fri Aug 26 18:48:30 2016 +0200 +++ b/src_js/iconolab-bundle/src/components/cutout/svgboard.js Tue Aug 30 16:58:59 2016 +0200 @@ -350,16 +350,46 @@ pathIsClosed = true; }); }; + var attachPointEvents = function (paper) { if (readOnly) { return; } - paper.click( function(e) { + + var clickTimeout = null; + var preventClick = false; + paper.dblclick( function (e) { if (drawingMode === RECT_MODE) { return true; } + preventClick = true; + if (clickTimeout) { + clickTimeout = clearTimeout(clickTimeout); + preventClick = false; + pathIsClosed = true; + if (pointData.length > 2) { + updatePath(paper, onClosePath); + } + } + return false; + }); + + var clickHandler = function (e) { + if (preventClick) { return; } + + if (drawingMode === RECT_MODE) { + return true; + } if (!ENABLE_NEW_NODE) { return true; } createPoint(paper, e.offsetX, e.offsetY, pointData); + clickTimeout = null; + preventClick = false; + } + + paper.click(function (e) { + if (clickTimeout) { return; } + clickTimeout = setTimeout(clickHandler.bind(this, e), 190); }); + };