diff --git a/src/lib/components/modes/treemode/JSONNode.svelte b/src/lib/components/modes/treemode/JSONNode.svelte index 9f863e93..967342fe 100644 --- a/src/lib/components/modes/treemode/JSONNode.svelte +++ b/src/lib/components/modes/treemode/JSONNode.svelte @@ -275,6 +275,7 @@ items, indexOffset: 0 } + singleton.dragging = true document.addEventListener('mousemove', handleDragSelection, true) document.addEventListener('mouseup', handleDragSelectionEnd) @@ -320,6 +321,7 @@ } dragging = undefined + singleton.dragging = false document.removeEventListener('mousemove', handleDragSelection, true) document.removeEventListener('mouseup', handleDragSelectionEnd) @@ -375,6 +377,10 @@ } function handleMouseOver(event) { + if (singleton.selecting || singleton.dragging) { + return + } + event.stopPropagation() if (isChildOfAttribute(event.target, 'data-type', 'selectable-value')) { diff --git a/src/lib/components/modes/treemode/singleton.js b/src/lib/components/modes/treemode/singleton.js index 37a91a2e..35858af7 100644 --- a/src/lib/components/modes/treemode/singleton.js +++ b/src/lib/components/modes/treemode/singleton.js @@ -1,7 +1,9 @@ // used by JSONNode during dragging export const singleton = { - mousedown: false, + selecting: false, selectionAnchor: null, // Path selectionAnchorType: null, // Selection type - selectionFocus: null // Path + selectionFocus: null, // Path + + dragging: false }