|
362 | 362 | let dropPrev = true; |
363 | 363 | let dropInner = true; |
364 | 364 | let dropNext = true; |
| 365 | + let userAllowDropInner = true; |
365 | 366 | if (typeof this.allowDrop === 'function') { |
366 | 367 | dropPrev = this.allowDrop(draggingNode.node, dropNode.node, 'prev'); |
367 | | - dropInner = this.allowDrop(draggingNode.node, dropNode.node, 'inner'); |
| 368 | + userAllowDropInner = dropInner = this.allowDrop(draggingNode.node, dropNode.node, 'inner'); |
368 | 369 | dropNext = this.allowDrop(draggingNode.node, dropNode.node, 'next'); |
369 | 370 | } |
370 | | - dragState.allowDrop = dropInner; |
371 | 371 | event.dataTransfer.dropEffect = dropInner ? 'move' : 'none'; |
372 | 372 | if ((dropPrev || dropInner || dropNext) && oldDropNode !== dropNode) { |
373 | 373 | if (oldDropNode) { |
|
399 | 399 | const treePosition = this.$el.getBoundingClientRect(); |
400 | 400 |
|
401 | 401 | let dropType; |
402 | | - const prevPercent = dropPrev ? (dropInner ? 0.25 : (dropNext ? 0.5 : 1)) : -1; |
403 | | - const nextPercent = dropNext ? (dropInner ? 0.75 : (dropPrev ? 0.5 : 0)) : 1; |
| 402 | + const prevPercent = dropPrev ? (dropInner ? 0.25 : (dropNext ? 0.45 : 1)) : -1; |
| 403 | + const nextPercent = dropNext ? (dropInner ? 0.75 : (dropPrev ? 0.55 : 0)) : 1; |
404 | 404 |
|
405 | 405 | let indicatorTop = -9999; |
406 | 406 | const distance = event.clientY - targetPosition.top; |
|
430 | 430 | } |
431 | 431 |
|
432 | 432 | dragState.showDropIndicator = dropType === 'before' || dropType === 'after'; |
| 433 | + dragState.allowDrop = dragState.showDropIndicator || userAllowDropInner; |
433 | 434 | dragState.dropType = dropType; |
434 | 435 | this.$emit('node-drag-over', draggingNode.node, dropNode.node, event); |
435 | 436 | }); |
|
0 commit comments