mirror of
https://github.com/atom/atom.git
synced 2026-01-27 15:58:00 -05:00
add methods to determine if we should allow dragging and dropping
This commit is contained in:
@@ -14,6 +14,8 @@ class SortableList extends View
|
||||
@on 'drop', '.sortable', @onDrop
|
||||
|
||||
onDragStart: (event) =>
|
||||
return false if !@shouldAllowDrag()
|
||||
|
||||
el = @getSortableElement(event)
|
||||
el.addClass 'is-dragging'
|
||||
event.originalEvent.dataTransfer.setData 'sortable-index', el.index()
|
||||
@@ -32,9 +34,16 @@ class SortableList extends View
|
||||
@getSortableElement(event).removeClass 'is-drop-target'
|
||||
|
||||
onDrop: (event) =>
|
||||
return false if !@shouldAllowDrop()
|
||||
event.stopPropagation()
|
||||
@find('.is-drop-target').removeClass 'is-drop-target'
|
||||
|
||||
shouldAllowDrag: ->
|
||||
true
|
||||
|
||||
shouldAllowDrop: ->
|
||||
true
|
||||
|
||||
getDroppedElement: (event) ->
|
||||
idx = event.originalEvent.dataTransfer.getData 'sortable-index'
|
||||
@find ".sortable:eq(#{idx})"
|
||||
|
||||
@@ -45,6 +45,10 @@ class Tabs extends SortableList
|
||||
removeTabAtIndex: (index) ->
|
||||
@find(".tab:eq(#{index})").remove()
|
||||
|
||||
shouldAllowDrag: ->
|
||||
panes = rootView.find('.pane')
|
||||
panes.length == 1 && panes.find('.sortable').length > 0
|
||||
|
||||
onDragStart: (event) =>
|
||||
super
|
||||
pane = $(event.target).closest('.pane')
|
||||
@@ -75,10 +79,11 @@ class Tabs extends SortableList
|
||||
draggedTab.insertAfter(droppedNearTab)
|
||||
|
||||
currentDraggedTabIndex = draggedTab.index()
|
||||
|
||||
#console.log ".#{Tabs.viewClass()} .sortable:eq(#{previousDraggedTabIndex})"
|
||||
toEditor.editSessions.splice(currentDraggedTabIndex, 0, fromEditor.editSessions.splice(previousDraggedTabIndex, 1)[0])
|
||||
|
||||
@setActiveTab(currentDraggedTabIndex)
|
||||
fromEditor.setActiveEditSessionIndex(0)
|
||||
console.log fromPaneIndex, toPaneIndex, currentDraggedTabIndex
|
||||
fromEditor.setActiveEditSessionIndex(0) if fromPaneIndex != toPaneIndex
|
||||
toEditor.setActiveEditSessionIndex(currentDraggedTabIndex)
|
||||
toEditor.focus()
|
||||
|
||||
Reference in New Issue
Block a user