Browse Source

Fix tools with scrollable elements. Closes #2522

pull/3487/head
Artur Arseniev 5 years ago
parent
commit
feb662ca20
  1. 6
      src/commands/view/SelectComponent.js
  2. 8
      src/utils/mixins.js

6
src/commands/view/SelectComponent.js

@ -84,11 +84,11 @@ export default {
methods[method](body, 'mouseover', this.onHover);
methods[method](body, 'mouseleave', this.onOut);
methods[method](body, 'click touchend', this.onClick);
methods[method](win, 'scroll', this.onFrameScroll);
methods[method](win, 'scroll', this.onFrameScroll, true);
};
methods[method](window, 'resize', this.onFrameUpdated);
methods[method](listenToEl, 'scroll', this.onContainerChange);
em[method]('component:toggled component:remove', this.onSelect, this);
em[method]('component:toggled component:update', this.onSelect, this);
em[method]('change:componentHovered', this.onHovered, this);
em[method](
'component:resize component:styleUpdate component:input',
@ -576,7 +576,7 @@ export default {
},
updateTools() {
this.updateToolsLocal();
this.updateLocalPos();
this.updateGlobalPos();
},

8
src/utils/mixins.js

@ -78,21 +78,21 @@ const shallowDiff = (objOrig, objNew) => {
return result;
};
const on = (el, ev, fn) => {
const on = (el, ev, fn, opts) => {
ev = ev.split(/\s+/);
el = el instanceof Array ? el : [el];
for (let i = 0; i < ev.length; ++i) {
el.forEach(elem => elem.addEventListener(ev[i], fn));
el.forEach(elem => elem.addEventListener(ev[i], fn, opts));
}
};
const off = (el, ev, fn) => {
const off = (el, ev, fn, opts) => {
ev = ev.split(/\s+/);
el = el instanceof Array ? el : [el];
for (let i = 0; i < ev.length; ++i) {
el.forEach(elem => elem.removeEventListener(ev[i], fn));
el.forEach(elem => elem.removeEventListener(ev[i], fn, opts));
}
};

Loading…
Cancel
Save