源代码:https://github.com/linuxdeepin/dde/blob/develop/resources/desktop/js/desktop_item.coffee
_DND_DATA_TYPE_NAME_ = "text/operate-type" _DND_DESKTOP_MARK_ = "desktop_internal" _SET_DND_INTERNAL_FLAG_ = (evt) -> evt.dataTransfer.setData(_DND_DATA_TYPE_NAME_, _DND_DESKTOP_MARK_) _IS_DND_INTERLNAL_ = (evt) -> evt.dataTransfer.getData(_DND_DATA_TYPE_NAME_) == _DND_DESKTOP_MARK_
do_drop : (evt) -> if _IS_DND_INTERLNAL_(evt) if not @selected evt.stopPropagation() evt.preventDefault() @display_not_hover() else evt.stopPropagation() evt.preventDefault() if not @selected @display_not_hover() return
echo "RichDir do_drop" super if _IS_DND_INTERLNAL_(evt) and @selected echo "_IS_DND_INTERLNAL_(evt)" else echo "move" tmp_list = [] for file in evt.dataTransfer.files e = DCore.DEntry.create_by_path(decodeURI(file.path).replace(/^file:\/\//i, "")) if not e? then continue # if DCore.DEntry.get_type(e) == FILE_TYPE_APP then tmp_list.push(e) tmp_list.push(e) if tmp_list.length > 0 then DCore.DEntry.move(tmp_list, @_entry, true) return