diff --git a/src/atom-application.coffee b/src/atom-application.coffee index f35d5139e..a87ed3f52 100644 --- a/src/atom-application.coffee +++ b/src/atom-application.coffee @@ -220,16 +220,8 @@ class AtomApplication atomWindow.sendCommand(command, args...) windowForPath: (pathToOpen) -> - return null unless pathToOpen - - for atomWindow in @windows when atomWindow.getPathToOpen()? - if pathToOpen is atomWindow.getPathToOpen() - return atomWindow - - if pathToOpen.indexOf(path.join(atomWindow.getPathToOpen(), path.sep)) is 0 - return atomWindow - - null + for atomWindow in @windows + return atomWindow if atomWindow.containsPath(pathToOpen) openPaths: (pathsToOpen=[], pidToKillWhenClosed) -> @openPath(pathToOpen, pidToKillWhenClosed) for pathToOpen in pathsToOpen diff --git a/src/atom-window.coffee b/src/atom-window.coffee index ff24cb4b0..19f7b8fcf 100644 --- a/src/atom-window.coffee +++ b/src/atom-window.coffee @@ -1,6 +1,7 @@ BrowserWindow = require 'browser-window' dialog = require 'dialog' ipc = require 'ipc' +path = require 'path' module.exports = class AtomWindow @@ -18,6 +19,16 @@ class AtomWindow getPathToOpen: -> @browserWindow.loadSettings.pathToOpen + containsPath: (pathToCheck) -> + if not pathToCheck + false + else if pathToCheck is @getPathToOpen() + true + else if pathToCheck.indexOf(path.join(@getPathToOpen(), path.sep)) is 0 + true + else + false + handleEvents: -> @browserWindow.on 'destroyed', => global.atomApplication.removeWindow(this)