update tabs extension to listen to project:resource:close. like a boss.

This commit is contained in:
Chris Wanstrath
2011-11-26 03:30:37 -08:00
parent ed2a923ee3
commit 5d9b98e7c6
3 changed files with 5 additions and 16 deletions

View File

@@ -1,5 +1,4 @@
tabs:
'cmd-w': (tabs) -> tabs.pane.closeActiveTab()
'cmd-shift-{': (tabs) -> tabs.pane.prevTab()
'cmd-shift-}': (tabs) -> tabs.pane.nextTab()
'cmd-1': (tabs) -> tabs.pane.switchToTab 1

View File

@@ -49,20 +49,6 @@ class TabsPane extends Pane
"""
$("#tabs ul li:last").addClass 'active'
closeActiveTab: ->
tabsLength = $('#tabs ul li').length
activePath = $('#tabs ul .active').data 'path'
if tabsLength is 1
@removeTab activePath
$('#main-container').children().css 'display', 'none !important'
window.setTitle window.resource.title()
else if tabsLength > 0
@removeTab activePath
@prevTab()
else
window.close()
removeTab: (path) ->
tab = $("#tabs li[data-path='#{path}']")
if tab.hasClass("active")

View File

@@ -10,6 +10,7 @@ class Tabs extends Extension
constructor: ->
atom.on 'project:open', @startup
atom.on 'project:resource:active', @focus
atom.on 'project:resource:close', @close
startup: (@project) =>
@pane = new TabsPane this
@@ -24,4 +25,7 @@ class Tabs extends Extension
@pane?.toggle()
focus: (project, resource) =>
@pane?.addTab resource.url
@pane?.addTab resource.url
close: (project, resource) =>
@pane?.removeTab resource.url