|
@@ -7,8 +7,9 @@
|
|
|
:class="isConfirmingDeletion ? '' : 'show-icons-on-hover'"
|
|
|
@click="onClickTopBar"
|
|
|
@dragstart="onDragStart"
|
|
|
- @dragenter="onDragEnter"
|
|
|
- @dragend="clearDragInfo"
|
|
|
+ @dragenter.self="onDragEnter"
|
|
|
+ @dragend="onDragEnd"
|
|
|
+ @dragleave.self="onDragLeave"
|
|
|
draggable="true"
|
|
|
:style="{
|
|
|
paddingLeft: topBarPaddingLeft,
|
|
@@ -193,6 +194,7 @@ export default {
|
|
|
newName: '',
|
|
|
isConfirmingDeletion: false,
|
|
|
isShowSelectionWindow: false,
|
|
|
+ dragEnterTimerId: null,
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
@@ -330,11 +332,26 @@ export default {
|
|
|
// e.dataTransfer.setDragImage(e.target.children[1], -10, -18)
|
|
|
},
|
|
|
onDragEnter(e) {
|
|
|
- if (!this.isExpanded) {
|
|
|
- this.isExpanded = true
|
|
|
- this.$bus.emit('scene-group-expanded', this.groupNode.id, this.level)
|
|
|
+ if (e.target.contains(e.relatedTarget)) {
|
|
|
+ return
|
|
|
}
|
|
|
+ this.dragEnterTimerId = setTimeout(() => {
|
|
|
+ if (!this.isExpanded) {
|
|
|
+ this.isExpanded = true
|
|
|
+ this.$bus.emit('scene-group-expanded', this.groupNode.id, this.level)
|
|
|
+ }
|
|
|
+ }, 700)
|
|
|
+ },
|
|
|
+ onDragEnd() {
|
|
|
+ this.clearDragInfo()
|
|
|
+ clearTimeout(this.dragEnterTimerId)
|
|
|
},
|
|
|
+ onDragLeave(e) {
|
|
|
+ if (e.target.contains(e.relatedTarget)) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ clearTimeout(this.dragEnterTimerId)
|
|
|
+ }
|
|
|
},
|
|
|
mounted() {
|
|
|
this.$bus.on('scene-group-expanded', this.onOtherSceneGroupExpanded)
|