diff --git a/src/browser/atom-application.coffee b/src/browser/atom-application.coffee index db4c7ff2c..a59a6c8d2 100644 --- a/src/browser/atom-application.coffee +++ b/src/browser/atom-application.coffee @@ -105,7 +105,7 @@ class AtomApplication app.quit() return @windows.splice(@windows.indexOf(window), 1) - @saveState() unless window.isSpec or @quitting + @saveState() unless window.isSpec # Public: Adds the {AtomWindow} to the global window list. addWindow: (window) -> @@ -273,6 +273,9 @@ class AtomApplication @promptForPath "folder", (selectedPaths) -> event.sender.send(responseChannel, selectedPaths) + ipc.on 'cancel-window-close', => + @quitting = false + clipboard = null ipc.on 'write-text-to-selection-clipboard', (event, selectedText) -> clipboard ?= require '../safe-clipboard' @@ -437,6 +440,7 @@ class AtomApplication delete @pidsToOpenWindows[pid] saveState: -> + return if @quitting states = [] for window in @windows unless window.isSpec diff --git a/src/window-event-handler.coffee b/src/window-event-handler.coffee index 3b9d54b96..6f7a4cb6b 100644 --- a/src/window-event-handler.coffee +++ b/src/window-event-handler.coffee @@ -64,7 +64,10 @@ class WindowEventHandler atom.storeDefaultWindowDimensions() atom.storeWindowDimensions() - atom.unloadEditorWindow() if confirmed + if confirmed + atom.unloadEditorWindow() + else + ipc.send('cancel-window-close') confirmed