From 99d0d6be5d1f0e0447b841b66e8caecb42b92ba5 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Thu, 11 May 2023 15:00:50 +0400 Subject: [PATCH] Take into account scroll data when drop in absolute mode --- src/utils/Droppable.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/utils/Droppable.ts b/src/utils/Droppable.ts index daed3c0ca..d3654a13e 100644 --- a/src/utils/Droppable.ts +++ b/src/utils/Droppable.ts @@ -1,6 +1,7 @@ import { bindAll, indexOf } from 'underscore'; import CanvasModule from '../canvas'; import EditorModel from '../editor/model/Editor'; +import { getDocumentScroll } from './dom'; import { on, off } from './mixins'; // TODO move in sorter @@ -129,9 +130,13 @@ export default class Droppable { comp = wrapper.append(content)[0]; const canvasOffset = canvas.getOffset(); const { top, left, position } = target.getStyle(); + const scroll = getDocumentScroll(ev.target); + const postLeft = parseInt(`${parseFloat(left) + scroll.x - canvasOffset.left}`, 10); + const posTop = parseInt(`${parseFloat(top) + scroll.y - canvasOffset.top}`, 10); + comp.addStyle({ - left: parseFloat(left) - canvasOffset.left + 'px', - top: parseFloat(top) - canvasOffset.top + 'px', + left: postLeft + 'px', + top: posTop + 'px', position, }); }