mirror of
https://github.com/atom/atom.git
synced 2026-01-24 14:28:14 -05:00
Merge pull request #478 from github/no-drag-drop
Don't respond to drag-drop of external files
This commit is contained in:
@@ -25,6 +25,12 @@ window.setUpEnvironment = ->
|
||||
$(document).on 'keydown', keymap.handleKeyEvent
|
||||
keymap.bindDefaultKeys()
|
||||
|
||||
ignoreEvents = (e) ->
|
||||
e.preventDefault()
|
||||
e.stopPropagation()
|
||||
$(document).on 'dragover', ignoreEvents
|
||||
$(document).on 'drop', ignoreEvents
|
||||
|
||||
requireStylesheet 'reset'
|
||||
requireStylesheet 'atom'
|
||||
requireStylesheet 'overlay'
|
||||
|
||||
@@ -81,6 +81,8 @@ class TabBarView extends View
|
||||
event.preventDefault()
|
||||
return
|
||||
|
||||
event.originalEvent.dataTransfer.setData 'atom-event', 'true'
|
||||
|
||||
el = $(event.target).closest('.sortable')
|
||||
el.addClass 'is-dragging'
|
||||
event.originalEvent.dataTransfer.setData 'sortable-index', el.index()
|
||||
@@ -93,6 +95,11 @@ class TabBarView extends View
|
||||
@find(".is-dragging").removeClass 'is-dragging'
|
||||
|
||||
onDragOver: (event) =>
|
||||
unless event.originalEvent.dataTransfer.getData('atom-event') is 'true'
|
||||
event.preventDefault()
|
||||
event.stopPropagation()
|
||||
return
|
||||
|
||||
event.preventDefault()
|
||||
currentDropTargetIndex = @find(".is-drop-target").index()
|
||||
newDropTargetIndex = @getDropTargetIndex(event)
|
||||
@@ -107,6 +114,11 @@ class TabBarView extends View
|
||||
|
||||
|
||||
onDrop: (event) =>
|
||||
unless event.originalEvent.dataTransfer.getData('atom-event') is 'true'
|
||||
event.preventDefault()
|
||||
event.stopPropagation()
|
||||
return
|
||||
|
||||
event.stopPropagation()
|
||||
@children('.is-drop-target').removeClass 'is-drop-target'
|
||||
@children('.drop-target-is-after').removeClass 'drop-target-is-after'
|
||||
|
||||
@@ -278,3 +278,19 @@ describe "TabBarView", ->
|
||||
expect(pane2.getItems()).toEqual [item2b, item1]
|
||||
expect(pane2.activeItem).toBe item1
|
||||
expect(pane2.focus).toHaveBeenCalled()
|
||||
|
||||
describe 'when a non-tab is dragged to pane', ->
|
||||
it 'has no effect', ->
|
||||
expect(tabBar.getTabs().map (tab) -> tab.text()).toEqual ["Item 1", "sample.js", "Item 2"]
|
||||
expect(pane.getItems()).toEqual [item1, editSession1, item2]
|
||||
expect(pane.activeItem).toBe item2
|
||||
spyOn(pane, 'focus')
|
||||
|
||||
[dragStartEvent, dropEvent] = buildDragEvents(tabBar.tabAtIndex(0), tabBar.tabAtIndex(0))
|
||||
tabBar.onDrop(dropEvent)
|
||||
|
||||
expect(tabBar.getTabs().map (tab) -> tab.text()).toEqual ["Item 1", "sample.js", "Item 2"]
|
||||
expect(pane.getItems()).toEqual [item1, editSession1, item2]
|
||||
expect(pane.activeItem).toBe item2
|
||||
expect(pane.focus).not.toHaveBeenCalled()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user