瀏覽代碼

cleaning dragging preview

lviguier 1 年之前
父節點
當前提交
51961fd823
共有 1 個文件被更改,包括 17 次插入21 次删除
  1. 17 21
      hide/comp/cdb/Table.hx

+ 17 - 21
hide/comp/cdb/Table.hx

@@ -198,17 +198,7 @@ class Table extends Component {
 					e.preventDefault();
 				}
 
-				// Update preview of where the line while be dropped
-				var pickedEl = js.Browser.document.elementFromPoint(e.clientX, e.clientY);
-				var pickedLine = null;
-				var parentEl = pickedEl;
-				while (parentEl != null) {
-					if (lines.filter((otherLine) -> otherLine.element.get()[0] == parentEl).length > 0) {
-						pickedLine = lines.filter((otherLine) -> otherLine.element.get()[0] == parentEl)[0];
-						break;
-					}
-					parentEl = parentEl.parentElement;
-				}
+				var pickedLine = getPickedLine(e);
 				if (pickedLine != null) {
 					var lineEl = editor.getLine(line.table.sheet, pickedLine.index).element;
 					previewDrop.css("top",'${pickedLine.index > line.index ? lineEl.position().top + lineEl.height() : lineEl.position().top}px');
@@ -218,16 +208,7 @@ class Table extends Component {
 				ide.unregisterUpdate(updateDrag);
 				previewDrop.hide();
 				if (e.dataTransfer.dropEffect == "none") return false;
-				var pickedEl = js.Browser.document.elementFromPoint(e.clientX, e.clientY);
-				var pickedLine = null;
-				var parentEl = pickedEl;
-				while (parentEl != null) {
-					if (lines.filter((otherLine) -> otherLine.element.get()[0] == parentEl).length > 0) {
-						pickedLine = lines.filter((otherLine) -> otherLine.element.get()[0] == parentEl)[0];
-						break;
-					}
-					parentEl = parentEl.parentElement;
-				}
+				var pickedLine = getPickedLine(e);
 				if (pickedLine != null) {
 					editor.moveLine(line, pickedLine.index - line.index, true);
 					return true;
@@ -335,6 +316,21 @@ class Table extends Component {
 		#end
 	}
 
+	function getPickedLine(e : js.html.DragEvent) {
+		var pickedEl = js.Browser.document.elementFromPoint(e.clientX, e.clientY);
+		var pickedLine = null;
+		var parentEl = pickedEl;
+		while (parentEl != null) {
+			if (lines.filter((otherLine) -> otherLine.element.get()[0] == parentEl).length > 0) {
+				pickedLine = lines.filter((otherLine) -> otherLine.element.get()[0] == parentEl)[0];
+				break;
+			}
+			parentEl = parentEl.parentElement;
+		}
+
+		return pickedLine;
+	}
+
 	function makeSeparatorTree( ?root ) {
 		var curLevel = 0;
 		var cur : SepTree = { sep : null, index : -1, subs : [], parent : null };