From d448db41d1d924d0a6aa3db6b9e48dba559a028c Mon Sep 17 00:00:00 2001 From: Justin Palmer Date: Mon, 11 Feb 2013 13:26:23 -0800 Subject: [PATCH] don't allow duplicate tabs in the same edit session --- src/packages/tabs/lib/tab-view.coffee | 11 ++++++++++- src/packages/tabs/lib/tab.coffee | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/packages/tabs/lib/tab-view.coffee b/src/packages/tabs/lib/tab-view.coffee index 175bdd3e5..a1137265f 100644 --- a/src/packages/tabs/lib/tab-view.coffee +++ b/src/packages/tabs/lib/tab-view.coffee @@ -44,6 +44,14 @@ class TabView extends SortableList removeTabAtIndex: (index) -> @find(".tab:eq(#{index})").remove() + containsTab: (tab) -> + unique = true + path = $(tab).view().buffer.file.path + paths = $.makeArray(@find('.tab')).map (e) -> + $(e).view().buffer.file.path + + return paths.some (tabpath) -> tabpath == path + shouldAllowDrag: (event) -> panes = rootView.find('.pane') !(panes.length == 1 && panes.find('.sortable').length == 1) @@ -75,7 +83,8 @@ class TabView extends SortableList droppedNearTab = @getSortableElement(event) draggedTab = fromPane.find(".#{TabView.viewClass()} .sortable:eq(#{previousDraggedTabIndex})") - return if draggedTab[0] is droppedNearTab[0] + + return if draggedTab[0] is droppedNearTab[0] or @containsTab(draggedTab) draggedTab.remove() draggedTab.insertAfter(droppedNearTab) diff --git a/src/packages/tabs/lib/tab.coffee b/src/packages/tabs/lib/tab.coffee index bcc055f1d..f538adb01 100644 --- a/src/packages/tabs/lib/tab.coffee +++ b/src/packages/tabs/lib/tab.coffee @@ -38,4 +38,4 @@ class Tab extends View fileNameText = 'untitled' @fileName.text(fileNameText) - @fileName.attr('title', @editSession.getPath()) + @fileName.attr('title', @editSession.getPath()) \ No newline at end of file