       callback = $parse attrs.fileDrop
 
       types = _.flatten(_.values(TYPES))
+      fromPage = false
+
+      handleDragStart = ->
+        fromPage = true
+
+      handleDragEnd = ->
+        fromPage = false
 
       handleDragOver = (e) ->
+        return if fromPage
         element.addClass 'hover'
         element.removeClass 'reading'
         false

          decrementWaiting()

      $('html').
        on('dragover',  handleDragOver).
        on('dragleave', handleDragLeave).
        on('drop',      handleDrop)

      scope.$on '$destroy', ->
        $('html').
          off('dragover',  handleDragOver).
          off('dragleave', handleDragLeave).
          off('drop',      handleDrop)


      getFilesFromEntry = (entry) ->
        waiting += 1
        if entry?.isDirectory
          entry.createReader().readEntries (entries) ->
            for entry in entries
              getFilesFromEntry(entry)
            decrementWaiting()
        else if entry?.isFile
          entry.file (file) ->
            queue.push(file) if file.type in types
            decrementWaiting()
