@Override
	public void dragOver(DropTargetDragEvent event) {
		TreePanel panel = getPanel();
		TreeContainerRow parentRow = null;
		int insertIndex = -1;
		if (acceptDrag(event)) {
			Point pt = panel.toContentView(new Point(event.getLocation()));
			TreeRoot root = panel.getRoot();
			TreeRow overRow = panel.overRow(pt.y);
			if (overRow != null) {
				if (mRowSelection.getRows().get(0).getTreeRoot() != root || !panel.isRowOrAncestorSelected(overRow)) {
					int indent = TreePanel.INDENT * overRow.getDepth();
					if (panel.areDisclosureControlsShowing()) {
						indent += TreePanel.INDENT;
					}
					if (overRow instanceof TreeContainerRow && pt.x > indent) {
						parentRow = (TreeContainerRow) overRow;
						insertIndex = 0;
					} else {
						parentRow = overRow.getParent();
						insertIndex = overRow.getIndex();
						Rectangle bounds = panel.getRowBounds(overRow);
						if (pt.y > bounds.y + bounds.height / 2) {
							insertIndex++;
						}
					}
				}
			} else {
				parentRow = root;
				insertIndex = root.getChildCount();
			}
		}
		panel.adjustInsertionMarker(parentRow, insertIndex);
	}