From cc27ca411b8391f573abe3cb330f40400ab7f804 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Fri, 18 Sep 2015 10:48:30 -0600 Subject: [PATCH 1/4] Preserve all event properties when dispatching commands Fixes https://github.com/atom/vim-mode/issues/863 Fixes https://github.com/atom/atom/issues/8845 Signed-off-by: Max Brunsfeld --- spec/command-registry-spec.coffee | 9 +++++++++ src/command-registry.coffee | 3 +++ 2 files changed, 12 insertions(+) diff --git a/spec/command-registry-spec.coffee b/spec/command-registry-spec.coffee index 92e322478..f8194aae6 100644 --- a/spec/command-registry-spec.coffee +++ b/spec/command-registry-spec.coffee @@ -115,6 +115,15 @@ describe "CommandRegistry", -> grandchild.dispatchEvent(dispatchedEvent) expect(dispatchedEvent.abortKeyBinding).toHaveBeenCalled() + it "copies non-standard properties from the original event to the synthetic event", -> + syntheticEvent = null + registry.add '.child', 'command', (event) -> syntheticEvent = event + + dispatchedEvent = new CustomEvent('command', bubbles: true) + dispatchedEvent.nonStandardProperty = 'testing' + grandchild.dispatchEvent(dispatchedEvent) + expect(syntheticEvent.nonStandardProperty).toBe 'testing' + it "allows listeners to be removed via a disposable returned by ::add", -> calls = [] diff --git a/src/command-registry.coffee b/src/command-registry.coffee index 0ad8a7fe2..4429677a2 100644 --- a/src/command-registry.coffee +++ b/src/command-registry.coffee @@ -227,6 +227,9 @@ class CommandRegistry Object.defineProperty dispatchedEvent, 'abortKeyBinding', value: -> event.abortKeyBinding?() + for key in Object.keys(event) + dispatchedEvent[key] = event[key] + @emitter.emit 'will-dispatch', dispatchedEvent loop From a8a3d4b0168ba4393d00630d2ddd3635d5263b46 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Fri, 18 Sep 2015 10:55:20 -0600 Subject: [PATCH 2/4] 1.0.14 (pre-increment) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a74a5ccfa..eb0759483 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "atom", "productName": "Atom", - "version": "1.0.13", + "version": "1.0.14", "description": "A hackable text editor for the 21st Century.", "main": "./src/browser/main.js", "repository": { From 781e5b4b077ae88b7a7b8eb0eaccb921ad6d0bdb Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Fri, 18 Sep 2015 14:56:42 -0600 Subject: [PATCH 3/4] :arrow_up: apm --- apm/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apm/package.json b/apm/package.json index 114d783f2..6ea664d38 100644 --- a/apm/package.json +++ b/apm/package.json @@ -6,6 +6,6 @@ "url": "https://github.com/atom/atom.git" }, "dependencies": { - "atom-package-manager": "1.0.4" + "atom-package-manager": "1.0.5" } } From 51ecbc0a5a131ca3b053ba510def1ff5a2546a9d Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Fri, 18 Sep 2015 14:57:24 -0600 Subject: [PATCH 4/4] 1.0.15 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index eb0759483..8f312b529 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "atom", "productName": "Atom", - "version": "1.0.14", + "version": "1.0.15", "description": "A hackable text editor for the 21st Century.", "main": "./src/browser/main.js", "repository": {