Browse Source

Refactor updateToolbarPos method

pull/1736/head
Artur Arseniev 8 years ago
parent
commit
b9d107e4a1
  1. 18
      src/commands/view/SelectComponent.js

18
src/commands/view/SelectComponent.js

@ -527,21 +527,25 @@ module.exports = {
* @param {Object} pos * @param {Object} pos
*/ */
updateToolbarPos(el, elPos) { updateToolbarPos(el, elPos) {
const frameOffset = this.canvas.getCanvasView().getFrameOffset(); const { canvas } = this;
const unit = 'px'; const unit = 'px';
const toolbarEl = this.canvas.getToolbarEl(); const toolbarEl = canvas.getToolbarEl();
const toolbarStyle = toolbarEl.style; const toolbarStyle = toolbarEl.style;
toolbarStyle.opacity = 0; toolbarStyle.opacity = 0;
const pos = this.canvas.getTargetToElementDim(toolbarEl, el, { const pos = canvas.getTargetToElementDim(toolbarEl, el, {
elPos, elPos,
event: 'toolbarPosUpdate' event: 'toolbarPosUpdate'
}); });
if (pos) { if (pos) {
const isElementBiggerThanCanvas = const frameOffset = canvas.getCanvasView().getFrameOffset();
pos.elementHeight + pos.targetHeight >= frameOffset.height;
// Scroll with the window if the top edge is reached and the
if (pos.top <= pos.canvasTop && !isElementBiggerThanCanvas) { // element is bigger than the canvas
if (
pos.top <= pos.canvasTop &&
!(pos.elementHeight + pos.targetHeight >= frameOffset.height)
) {
pos.top = pos.elementTop + pos.elementHeight; pos.top = pos.elementTop + pos.elementHeight;
} }

Loading…
Cancel
Save