From fdd8c7ad417183797a67f6fde9e3d5181c4daf22 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Wed, 7 Mar 2012 12:40:32 -0700 Subject: [PATCH] Unbind default events in window.shutDown to prevent spurious triggering in specs --- src/atom/app.coffee | 4 ++-- src/atom/global-keymap.coffee | 11 +++++++++-- src/atom/window.coffee | 13 ++++++++++--- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/atom/app.coffee b/src/atom/app.coffee index 37bd69570..ce57cf96b 100644 --- a/src/atom/app.coffee +++ b/src/atom/app.coffee @@ -10,10 +10,10 @@ class App constructor: (@loadPath, nativeMethods)-> @windows = [] - @setupKeymap() + @setUpKeymap() @tabText = " " - setupKeymap: -> + setUpKeymap: -> @keymap = new GlobalKeymap() $(document).on 'keydown', (e) => @keymap.handleKeyEvent(e) @keymap.bindDefaultKeys() diff --git a/src/atom/global-keymap.coffee b/src/atom/global-keymap.coffee index ec1eaf14e..75aac9cb0 100644 --- a/src/atom/global-keymap.coffee +++ b/src/atom/global-keymap.coffee @@ -14,11 +14,18 @@ class GlobalKeymap 'meta-n': 'newWindow' 'meta-o': 'open' - $(document).on 'newWindow', => $native.newWindow() - $(document).on 'open', => + @_newWindow = => $native.newWindow() + @_open = => url = $native.openDialog() atom.open(url) if url + $(document).on 'newWindow', @_newWindow + $(document).on 'open', @_open + + unbindDefaultKeys: -> + $(document).unbind 'newWindow', @_newWindow + $(document).unbind 'open', @_open + bindKeys: (selector, bindings) -> @bindingSets.unshift(new BindingSet(selector, bindings)) diff --git a/src/atom/window.coffee b/src/atom/window.coffee index 7b732da7f..306907aef 100644 --- a/src/atom/window.coffee +++ b/src/atom/window.coffee @@ -15,7 +15,7 @@ windowAdditions = keymap: null startup: (url) -> - @setupKeymap() + @setUpKeymap() @attachRootView(url) $(window).on 'close', => @@ -30,11 +30,18 @@ windowAdditions = $(window).unbind('focus') $(window).unbind('blur') atom.windowClosed this + @tearDownKeymap() - setupKeymap: -> + setUpKeymap: -> @keymap = new GlobalKeymap() @keymap.bindDefaultKeys() - $(document).on 'keydown', (e) => @keymap.handleKeyEvent(e) + + @_handleKeyEvent = (e) => @keymap.handleKeyEvent(e) + $(document).on 'keydown', @_handleKeyEvent + + tearDownKeymap: -> + @keymap.unbindDefaultKeys() + $(document).off 'keydown', @_handleKeyEvent attachRootView: (url) -> @rootView = new RootView {url}