mirror of
https://github.com/atom/atom.git
synced 2026-04-28 03:01:47 -04:00
Destroy editSession by calling a method on the project instead of triggering a destroy event that the project listens to.
This commit is contained in:
@@ -83,21 +83,25 @@ class Project
|
||||
buffer = @buildBuffer()
|
||||
|
||||
editSession = new EditSession
|
||||
project: this
|
||||
buffer: buffer
|
||||
tabText: @getTabText()
|
||||
autoIndent: @getAutoIndent()
|
||||
softTabs: @getSoftTabs()
|
||||
softWrap: @getSoftWrap()
|
||||
|
||||
editSession.on 'destroy', =>
|
||||
@editSessions = _.without(@editSessions, editSession)
|
||||
bufferIsOrphaned = not _.find @editSessions, (e) -> e.buffer == editSession.buffer
|
||||
editSession.buffer.destroy() if bufferIsOrphaned
|
||||
|
||||
@editSessions.push editSession
|
||||
@trigger 'new-edit-session', editSession
|
||||
editSession
|
||||
|
||||
removeEditSession: (editSession) ->
|
||||
_.remove(@editSessions, editSession)
|
||||
@destroyBufferIfOrphaned(editSession.buffer)
|
||||
|
||||
destroyBufferIfOrphaned: (buffer) ->
|
||||
unless _.find(@editSessions, (editSession) -> editSession.buffer == buffer)
|
||||
buffer.destroy()
|
||||
|
||||
buildBuffer: (filePath) ->
|
||||
buffer = new Buffer(filePath)
|
||||
@trigger 'new-buffer', buffer
|
||||
|
||||
Reference in New Issue
Block a user