From b9d107e4a1a843dd7ef26dbd3fdf63e664cae730 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Thu, 17 Jan 2019 14:09:08 +0100 Subject: [PATCH] Refactor updateToolbarPos method --- src/commands/view/SelectComponent.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/commands/view/SelectComponent.js b/src/commands/view/SelectComponent.js index 4bdd0c223..2df42f887 100644 --- a/src/commands/view/SelectComponent.js +++ b/src/commands/view/SelectComponent.js @@ -527,21 +527,25 @@ module.exports = { * @param {Object} pos */ updateToolbarPos(el, elPos) { - const frameOffset = this.canvas.getCanvasView().getFrameOffset(); + const { canvas } = this; const unit = 'px'; - const toolbarEl = this.canvas.getToolbarEl(); + const toolbarEl = canvas.getToolbarEl(); const toolbarStyle = toolbarEl.style; toolbarStyle.opacity = 0; - const pos = this.canvas.getTargetToElementDim(toolbarEl, el, { + const pos = canvas.getTargetToElementDim(toolbarEl, el, { elPos, event: 'toolbarPosUpdate' }); if (pos) { - const isElementBiggerThanCanvas = - pos.elementHeight + pos.targetHeight >= frameOffset.height; - - if (pos.top <= pos.canvasTop && !isElementBiggerThanCanvas) { + const frameOffset = canvas.getCanvasView().getFrameOffset(); + + // Scroll with the window if the top edge is reached and the + // element is bigger than the canvas + if ( + pos.top <= pos.canvasTop && + !(pos.elementHeight + pos.targetHeight >= frameOffset.height) + ) { pos.top = pos.elementTop + pos.elementHeight; }