Browse Source

Propagate wheel event

pull/1800/head
Artur Arseniev 7 years ago
parent
commit
1ce51489e9
  1. 17
      src/canvas/view/CanvasView.js

17
src/canvas/view/CanvasView.js

@ -5,7 +5,7 @@ const $ = Backbone.$;
module.exports = Backbone.View.extend({
events: {
mousewheel: 'onMouseWheel'
wheel: 'onWheel'
},
initialize(o) {
@ -23,14 +23,14 @@ module.exports = Backbone.View.extend({
});
},
onMouseWheel(ev) {
ev.preventDefault();
onWheel(ev) {
if (ev.ctrlKey || ev.metaKey) {
ev.preventDefault();
ev._parentEvent && ev._parentEvent.preventDefault();
const { em } = this;
const delta = Math.max(-1, Math.min(1, ev.wheelDelta || -ev.detail));
const zoom = em.get('zoom');
em.set('zoom', zoom + delta);
em.set('zoom', zoom + delta * 2);
}
},
@ -215,6 +215,7 @@ module.exports = Backbone.View.extend({
oEvent.initEvent(e.type, true, true);
}
oEvent.keyCodeVal = e.keyCode;
oEvent._parentEvent = e;
['keyCode', 'which'].forEach(prop => {
Object.defineProperty(oEvent, prop, {
get() {
@ -226,12 +227,12 @@ module.exports = Backbone.View.extend({
};
[
{ event: 'keydown keyup', class: 'KeyboardEvent' }
//{ event: 'mousedown mousemove mouseup', class: 'MouseEvent' },
{ event: 'keydown keyup', class: 'KeyboardEvent' },
{ event: 'wheel', class: 'WheelEvent' }
].forEach(obj =>
obj.event.split(' ').forEach(event => {
fdoc.addEventListener(event, e =>
doc.dispatchEvent(createCustomEvent(e, obj.class))
this.el.dispatchEvent(createCustomEvent(e, obj.class))
);
})
);

Loading…
Cancel
Save