Pārlūkot izejas kodu

make event dragging/resizing less awkward with eventRenderWait

Adam Shaw 9 gadi atpakaļ
vecāks
revīzija
198a2643f1
1 mainītis faili ar 11 papildinājumiem un 2 dzēšanām
  1. 11 2
      src/common/Grid.events.js

+ 11 - 2
src/common/Grid.events.js

@@ -467,12 +467,16 @@ Grid.mixin({
 				mouseFollower.stop(!dropLocation, function() {
 				mouseFollower.stop(!dropLocation, function() {
 					if (isDragging) {
 					if (isDragging) {
 						view.unrenderDrag();
 						view.unrenderDrag();
-						view.showEvent(event);
 						_this.segDragStop(seg, ev);
 						_this.segDragStop(seg, ev);
 					}
 					}
+
 					if (dropLocation) {
 					if (dropLocation) {
+						// no need to re-show original, will rerender all anyways. esp important if eventRenderWait
 						view.reportEventDrop(event, dropLocation, _this.largeUnit, el, ev);
 						view.reportEventDrop(event, dropLocation, _this.largeUnit, el, ev);
 					}
 					}
+					else {
+						view.showEvent(event);
+					}
 				});
 				});
 				_this.segDragListener = null;
 				_this.segDragListener = null;
 			}
 			}
@@ -758,19 +762,24 @@ Grid.mixin({
 			},
 			},
 			hitOut: function() { // called before mouse moves to a different hit OR moved out of all hits
 			hitOut: function() { // called before mouse moves to a different hit OR moved out of all hits
 				resizeLocation = null;
 				resizeLocation = null;
+				view.showEvent(event); // for when out-of-bounds. show original
 			},
 			},
 			hitDone: function() { // resets the rendering to show the original event
 			hitDone: function() { // resets the rendering to show the original event
 				_this.unrenderEventResize();
 				_this.unrenderEventResize();
-				view.showEvent(event);
 				enableCursor();
 				enableCursor();
 			},
 			},
 			interactionEnd: function(ev) {
 			interactionEnd: function(ev) {
 				if (isDragging) {
 				if (isDragging) {
 					_this.segResizeStop(seg, ev);
 					_this.segResizeStop(seg, ev);
 				}
 				}
+
 				if (resizeLocation) { // valid date to resize to?
 				if (resizeLocation) { // valid date to resize to?
+					// no need to re-show original, will rerender all anyways. esp important if eventRenderWait
 					view.reportEventResize(event, resizeLocation, _this.largeUnit, el, ev);
 					view.reportEventResize(event, resizeLocation, _this.largeUnit, el, ev);
 				}
 				}
+				else {
+					view.showEvent(event);
+				}
 				_this.segResizeListener = null;
 				_this.segResizeListener = null;
 			}
 			}
 		});
 		});