From 0dd262d1dde6bf1e628ea503230fb457d61e2160 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 12 Apr 2019 09:56:18 -0400 Subject: [PATCH] Don't dispatch 'change' on `history.merged`, dispatch 'merge' only Change performs an expensive immediate redraw, and merge can schedule a redraw for later. --- modules/core/history.js | 1 - modules/renderer/map.js | 1 + test/spec/core/history.js | 10 +++++----- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/core/history.js b/modules/core/history.js index f634758ad..ef633ae33 100644 --- a/modules/core/history.js +++ b/modules/core/history.js @@ -123,7 +123,6 @@ export function coreHistory(context) { _stack[0].graph.rebase(entities, stack, false); _tree.rebase(entities, false); - dispatch.call('change', this, undefined, extent); dispatch.call('merge', this, entities); }, diff --git a/modules/renderer/map.js b/modules/renderer/map.js index 7b1ec28b6..1fdf0d04a 100644 --- a/modules/renderer/map.js +++ b/modules/renderer/map.js @@ -112,6 +112,7 @@ export function rendererMap(context) { } context.history() + .on('merge.map', function() { scheduleRedraw(); }) .on('change.map', immediateRedraw) .on('undone.map', function(stack, fromStack) { didUndoOrRedo(stack, fromStack.transform); diff --git a/test/spec/core/history.js b/test/spec/core/history.js index 26cb5a5b0..d355961f7 100644 --- a/test/spec/core/history.js +++ b/test/spec/core/history.js @@ -28,11 +28,11 @@ describe('iD.coreHistory', function () { expect(history.graph().entity('n')).to.equal(n); }); - it('emits a change event with the specified extent', function () { - var extent = {}; - history.on('change', spy); - history.merge([], extent); - expect(spy).to.have.been.calledWith(undefined, extent); + it('emits a merge event with the new entities', function () { + var n = iD.osmNode({id: 'n'}); + history.on('merge', spy); + history.merge([n]); + expect(spy).to.have.been.calledWith([n]); }); });