From 711b3def947cd39a21912f4d0ec158334df5719e Mon Sep 17 00:00:00 2001 From: JonathanGeoffroy Date: Mon, 3 Aug 2015 14:18:13 +0200 Subject: [PATCH] fix : selectEdge was fired even if user clicked on a node The selectEdge handler is now fired only if user clicked on an edge, in order to select it. It's not fired if the node are selected because there are connected to the selected node. --- lib/network/modules/InteractionHandler.js | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/lib/network/modules/InteractionHandler.js b/lib/network/modules/InteractionHandler.js index 831dde5e..251a1587 100644 --- a/lib/network/modules/InteractionHandler.js +++ b/lib/network/modules/InteractionHandler.js @@ -205,21 +205,19 @@ class InteractionHandler { selected = true; } - if (selectedEdgesCount - previouslySelectedEdgeCount > 0) { // edge was selected - this.selectionHandler._generateClickEvent('selectEdge', event, pointer); - selected = true; - } - else if (selectedEdgesCount - previouslySelectedEdgeCount < 0) { // edge was deselected - this.selectionHandler._generateClickEvent('deselectEdge', event, pointer, previousSelection); - selected = true; + if (selectedEdgesCount - previouslySelectedEdgeCount < 0 || (selectedEdgesCount === previouslySelectedEdgeCount && edgesChanges === true)) { // edge was deselected + this.selectionHandler._generateClickEvent('deselectEdge', event, pointer, previousSelection); + selected = true; } - else if (selectedEdgesCount === previouslySelectedEdgeCount && edgesChanges === true) { - this.selectionHandler._generateClickEvent('deselectEdge', event, pointer, previousSelection); + + // Check if the user clicked on an edge + let selectedNode = this.selectionHandler._getSelectedNode(); + let selectedEdge = this.selectionHandler._getSelectedEdge(); + if (selectedNode === undefined && selectedEdge !== undefined) { this.selectionHandler._generateClickEvent('selectEdge', event, pointer); selected = true; } - if (selected === true) { // select or unselect this.selectionHandler._generateClickEvent('select', event, pointer); }