From feb662ca205a0d13627b5b40cd0e55949462053a Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Fri, 21 May 2021 13:39:33 +0200 Subject: [PATCH] Fix tools with scrollable elements. Closes #2522 --- src/commands/view/SelectComponent.js | 6 +++--- src/utils/mixins.js | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/commands/view/SelectComponent.js b/src/commands/view/SelectComponent.js index f9499b8fb..41619cc7d 100644 --- a/src/commands/view/SelectComponent.js +++ b/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(); }, diff --git a/src/utils/mixins.js b/src/utils/mixins.js index ff3d9b431..8621d341e 100644 --- a/src/utils/mixins.js +++ b/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)); } };