Dragging a tab from one pane to another clears all placement markers

Closes #528
This commit is contained in:
Corey Johnson & Nathan Sobo
2013-05-01 17:36:36 -07:00
parent 6eb88278ae
commit 559f76e887

View File

@@ -95,8 +95,7 @@ class TabBarView extends View
onDragEnd: (event) =>
@find(".is-dragging").removeClass 'is-dragging'
@children('.is-drop-target').removeClass 'is-drop-target'
@children('.drop-target-is-after').removeClass 'drop-target-is-after'
@removeDropTargetClasses()
onDragOver: (event) =>
unless event.originalEvent.dataTransfer.getData('atom-event') is 'true'
@@ -104,18 +103,16 @@ class TabBarView extends View
event.stopPropagation()
return
@removeDropTargetClasses()
event.preventDefault()
currentDropTargetIndex = @find(".is-drop-target").index()
newDropTargetIndex = @getDropTargetIndex(event)
if newDropTargetIndex != currentDropTargetIndex
@children().removeClass 'is-drop-target drop-target-is-after'
sortableObjects = @find(".sortable")
if newDropTargetIndex < sortableObjects.length
sortableObjects.eq(newDropTargetIndex).addClass 'is-drop-target'
else
sortableObjects.eq(newDropTargetIndex - 1).addClass 'drop-target-is-after'
sortableObjects = @find(".sortable")
if newDropTargetIndex < sortableObjects.length
sortableObjects.eq(newDropTargetIndex).addClass 'is-drop-target'
else
sortableObjects.eq(newDropTargetIndex - 1).addClass 'drop-target-is-after'
onDrop: (event) =>
unless event.originalEvent.dataTransfer.getData('atom-event') is 'true'
@@ -123,6 +120,9 @@ class TabBarView extends View
event.stopPropagation()
return
@find(".is-dragging").removeClass 'is-dragging'
@removeDropTargetClasses()
event.stopPropagation()
dataTransfer = event.originalEvent.dataTransfer
@@ -142,6 +142,11 @@ class TabBarView extends View
toPane.showItem(item)
toPane.focus()
removeDropTargetClasses: ->
console.log rootView.find('.tabs .is-drop-target').length
rootView.find('.tabs .is-drop-target').removeClass 'is-drop-target'
rootView.find('.tabs .drop-target-is-after').removeClass 'drop-target-is-after'
getDropTargetIndex: (event) ->
el = $(event.target).closest('.sortable')
el = $(event.target).find('.sortable').last() if el.length == 0