Browse Source

change when autoscroller starts

Adam Shaw 7 years ago
parent
commit
3edd6b0116
1 changed files with 12 additions and 13 deletions
  1. 12 13
      src/dnd/FeaturefulElementDragging.ts

+ 12 - 13
src/dnd/FeaturefulElementDragging.ts

@@ -73,8 +73,7 @@ export default class FeaturefulElementDragging extends ElementDragging {
         this.origY = ev.pageY
         this.origY = ev.pageY
 
 
         this.mirror.setIsVisible(false) // reset. caller must set-visible
         this.mirror.setIsVisible(false) // reset. caller must set-visible
-        this.mirror.start(ev.subjectEl as HTMLElement, ev.pageX, ev.pageY)
-        this.autoScroller.start(ev.pageX, ev.pageY)
+        this.mirror.start(ev.subjectEl as HTMLElement, ev.pageX, ev.pageY) // must happen on first pointer down
 
 
         this.startDelay(ev)
         this.startDelay(ev)
 
 
@@ -90,12 +89,6 @@ export default class FeaturefulElementDragging extends ElementDragging {
 
 
       this.emitter.trigger('pointermove', ev)
       this.emitter.trigger('pointermove', ev)
 
 
-      // a real pointer move? (not one simulated by scrolling)
-      if (ev.origEvent.type !== 'scroll') {
-        this.mirror.handleMove(ev.pageX, ev.pageY)
-        this.autoScroller.handleMove(ev.pageX, ev.pageY)
-      }
-
       if (!this.isDistanceSurpassed) {
       if (!this.isDistanceSurpassed) {
         let dx = ev.pageX - this.origX!
         let dx = ev.pageX - this.origX!
         let dy = ev.pageY - this.origY!
         let dy = ev.pageY - this.origY!
@@ -109,6 +102,13 @@ export default class FeaturefulElementDragging extends ElementDragging {
       }
       }
 
 
       if (this.isDragging) {
       if (this.isDragging) {
+
+        // a real pointer move? (not one simulated by scrolling)
+        if (ev.origEvent.type !== 'scroll') {
+          this.mirror.handleMove(ev.pageX, ev.pageY)
+          this.autoScroller.handleMove(ev.pageX, ev.pageY)
+        }
+
         this.emitter.trigger('dragmove', ev)
         this.emitter.trigger('dragmove', ev)
       }
       }
     }
     }
@@ -123,12 +123,9 @@ export default class FeaturefulElementDragging extends ElementDragging {
 
 
       this.emitter.trigger('pointerup', ev) // can potentially set mirrorNeedsRevert
       this.emitter.trigger('pointerup', ev) // can potentially set mirrorNeedsRevert
 
 
-      if (!this.pointer.shouldIgnoreMove) { // because these things wouldn't have been started otherwise
-        this.autoScroller.stop()
-      }
-
       if (this.isDragging) {
       if (this.isDragging) {
-        this.tryStopDrag(ev)
+        this.autoScroller.stop()
+        this.tryStopDrag(ev) // which will stop the mirror
       }
       }
 
 
       if (this.delayTimeoutId) {
       if (this.delayTimeoutId) {
@@ -164,6 +161,8 @@ export default class FeaturefulElementDragging extends ElementDragging {
       if (!this.pointer.wasTouchScroll || this.touchScrollAllowed) {
       if (!this.pointer.wasTouchScroll || this.touchScrollAllowed) {
         this.isDragging = true
         this.isDragging = true
         this.mirrorNeedsRevert = false
         this.mirrorNeedsRevert = false
+
+        this.autoScroller.start(ev.pageX, ev.pageY)
         this.emitter.trigger('dragstart', ev)
         this.emitter.trigger('dragstart', ev)
 
 
         if (this.touchScrollAllowed === false) {
         if (this.touchScrollAllowed === false) {