소스 검색

clear selection states for day click. smarter re-enabling of cursor

Adam Shaw 9 년 전
부모
커밋
a567fff4d3
1개의 변경된 파일4개의 추가작업 그리고 2개의 파일을 삭제
  1. 4 2
      src/common/Grid.js

+ 4 - 2
src/common/Grid.js

@@ -290,6 +290,7 @@ var Grid = FC.Grid = Class.extend(ListenerMixin, MouseIgnorerMixin, {
 			scroll: view.opt('dragScroll'),
 			scroll: view.opt('dragScroll'),
 			interactionStart: function() {
 			interactionStart: function() {
 				dayClickHit = dragListener.origHit; // for dayClick, where no dragging happens
 				dayClickHit = dragListener.origHit; // for dayClick, where no dragging happens
+				selectionSpan = null;
 			},
 			},
 			dragStart: function() {
 			dragStart: function() {
 				view.unselect(); // since we could be rendering a new selection, we want to clear any old one
 				view.unselect(); // since we could be rendering a new selection, we want to clear any old one
@@ -316,10 +317,12 @@ var Grid = FC.Grid = Class.extend(ListenerMixin, MouseIgnorerMixin, {
 					}
 					}
 				}
 				}
 			},
 			},
-			hitOut: function() {
+			hitOut: function() { // called before mouse moves to a different hit OR moved out of all hits
 				dayClickHit = null;
 				dayClickHit = null;
 				selectionSpan = null;
 				selectionSpan = null;
 				_this.unrenderSelection();
 				_this.unrenderSelection();
+			},
+			hitDone: function() { // called after a hitOut OR before a dragEnd
 				enableCursor();
 				enableCursor();
 			},
 			},
 			interactionEnd: function(ev, isCancelled) {
 			interactionEnd: function(ev, isCancelled) {
@@ -338,7 +341,6 @@ var Grid = FC.Grid = Class.extend(ListenerMixin, MouseIgnorerMixin, {
 						// the selection will already have been rendered. just report it
 						// the selection will already have been rendered. just report it
 						view.reportSelection(selectionSpan, ev);
 						view.reportSelection(selectionSpan, ev);
 					}
 					}
-					enableCursor();
 				}
 				}
 			}
 			}
 		});
 		});