Browse Source

Unbind all key shortcuts on destroy. Fixes #1501

pull/1600/head
Artur Arseniev 7 years ago
parent
commit
1f6e1b8f6c
  1. 6
      src/canvas/index.js
  2. 1
      src/dom_components/view/ComponentImageView.js
  3. 4
      src/editor/model/Editor.js
  4. 10
      src/keymaps/index.js

6
src/canvas/index.js

@ -138,7 +138,8 @@ module.exports = () => {
* @return {HTMLBodyElement}
*/
getBody() {
return this.getDocument().body;
const doc = this.getDocument();
return doc && doc.body;
},
/**
@ -146,7 +147,8 @@ module.exports = () => {
* @return {HTMLElement}
*/
getWrapperEl() {
return this.getBody().querySelector('#wrapper');
const body = this.getBody();
return body && body.querySelector('#wrapper');
},
/**

1
src/dom_components/view/ComponentImageView.js

@ -10,7 +10,6 @@ module.exports = ComponentView.extend({
},
initialize(o) {
console.log('init image', this.el);
const model = this.model;
ComponentView.prototype.initialize.apply(this, arguments);
this.listenTo(model, 'change:src', this.updateSrc);

4
src/editor/model/Editor.js

@ -616,13 +616,15 @@ module.exports = Backbone.Model.extend({
CssComposer,
UndoManager,
Panels,
Canvas
Canvas,
Keymaps
} = this.attributes;
DomComponents.clear();
CssComposer.clear();
UndoManager.clear().removeAll();
Panels.getPanels().reset();
Canvas.getCanvasView().remove();
Keymaps.removeAll();
this.view.remove();
this.stopListening();
$(this.config.el)

10
src/keymaps/index.js

@ -26,6 +26,7 @@
* * [get](#get)
* * [getAll](#getAll)
* * [remove](#remove)
* * [removeAll](#removeall)
*
* @module Keymaps
*/
@ -194,6 +195,15 @@ module.exports = () => {
em && em.trigger('keymap:remove', keymap);
return keymap;
}
},
/**
* Remove all binded keymaps
* @return {this}
*/
removeAll() {
Object.keys(keymaps).forEach(keymap => this.remove(keymap));
return this;
}
};
};

Loading…
Cancel
Save