Skip to content
This repository was archived by the owner on Mar 3, 2023. It is now read-only.

Commit 71a2797

Browse files
committed
invalidate document's drag and drop event to prevent the browser's default open url link. add listener for pane's drop event to open dragged files.
1 parent 026eb40 commit 71a2797

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

src/pane-element.coffee

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{CompositeDisposable} = require 'event-kit'
22
{$, callAttachHooks, callRemoveHooks} = require './space-pen-extensions'
33
PaneView = require './pane-view'
4+
_ = require 'underscore-plus'
45

56
class PaneElement extends HTMLElement
67
attached: false
@@ -37,8 +38,21 @@ class PaneElement extends HTMLElement
3738
handleBlur = (event) =>
3839
@model.blur() unless @contains(event.relatedTarget)
3940

41+
handleDragOver = (event) =>
42+
event.preventDefault()
43+
event.stopPropagation()
44+
45+
handleDrop = (event) =>
46+
event.preventDefault()
47+
event.stopPropagation()
48+
@getModel().activate()
49+
pathsToOpen = _.pluck(event.dataTransfer.files, 'path')
50+
atom.open({pathsToOpen}) if pathsToOpen.length > 0
51+
4052
@addEventListener 'focus', handleFocus, true
4153
@addEventListener 'blur', handleBlur, true
54+
@addEventListener 'dragover', handleDragOver
55+
@addEventListener 'drop', handleDrop
4256

4357
createSpacePenShim: ->
4458
@__spacePenView = new PaneView(this)

src/window-event-handler.coffee

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
path = require 'path'
22
{$} = require './space-pen-extensions'
3-
_ = require 'underscore-plus'
43
{Disposable} = require 'event-kit'
54
ipc = require 'ipc'
65
shell = require 'shell'
@@ -134,12 +133,11 @@ class WindowEventHandler
134133
onDrop: (event) ->
135134
event.preventDefault()
136135
event.stopPropagation()
137-
pathsToOpen = _.pluck(event.dataTransfer.files, 'path')
138-
atom.open({pathsToOpen}) if pathsToOpen.length > 0
139136

140137
onDragOver: (event) ->
141138
event.preventDefault()
142139
event.stopPropagation()
140+
event.dataTransfer.dropEffect = 'none'
143141

144142
openLink: ({target, currentTarget}) ->
145143
location = target?.getAttribute('href') or currentTarget?.getAttribute('href')

0 commit comments

Comments
 (0)