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, 'mouseover', this.onHover);
methods[method](body, 'mouseleave', this.onOut); methods[method](body, 'mouseleave', this.onOut);
methods[method](body, 'click touchend', this.onClick); 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](window, 'resize', this.onFrameUpdated);
methods[method](listenToEl, 'scroll', this.onContainerChange); 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]('change:componentHovered', this.onHovered, this);
em[method]( em[method](
'component:resize component:styleUpdate component:input', 'component:resize component:styleUpdate component:input',
@ -576,7 +576,7 @@ export default {
}, },
updateTools() { updateTools() {
this.updateToolsLocal(); this.updateLocalPos();
this.updateGlobalPos(); this.updateGlobalPos();
}, },

8
src/utils/mixins.js

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