Browse Source

Take into account borders during a component move. Fixes #5621 Closes #5622

pull/5678/head
Artur Arseniev 3 years ago
parent
commit
ec4f2d634e
  1. 8
      src/canvas/view/CanvasView.ts
  2. 10
      src/utils/Sorter.ts

8
src/canvas/view/CanvasView.ts

@ -29,6 +29,10 @@ export interface MarginPaddingOffsets {
paddingRight?: number; paddingRight?: number;
paddingBottom?: number; paddingBottom?: number;
paddingLeft?: number; paddingLeft?: number;
borderTopWidth?: number;
borderRightWidth?: number;
borderBottomWidth?: number;
borderLeftWidth?: number;
} }
export type ElementPosOpts = { export type ElementPosOpts = {
@ -516,6 +520,10 @@ export default class CanvasView extends ModuleView<Canvas> {
'paddingRight', 'paddingRight',
'paddingBottom', 'paddingBottom',
'paddingLeft', 'paddingLeft',
'borderTopWidth',
'borderRightWidth',
'borderBottomWidth',
'borderLeftWidth',
]; ];
marginPaddingOffsets.forEach(offset => { marginPaddingOffsets.forEach(offset => {
result[offset] = parseFloat(styles[offset]) * zoom; result[offset] = parseFloat(styles[offset]) * zoom;

10
src/utils/Sorter.ts

@ -1097,9 +1097,13 @@ export default class Sorter extends View {
const offset = trgDim.offsets || {}; const offset = trgDim.offsets || {};
const pT = offset.paddingTop || margI; const pT = offset.paddingTop || margI;
const pL = offset.paddingLeft || margI; const pL = offset.paddingLeft || margI;
t = trgDim.top + pT; const bT = offset.borderTopWidth || 0;
l = trgDim.left + pL; const bL = offset.borderLeftWidth || 0;
w = parseInt(`${trgDim.width}`) - pL * 2 + un; const bR = offset.borderRightWidth || 0;
const bWidth = bL + bR;
t = trgDim.top + pT + bT;
l = trgDim.left + pL + bL;
w = parseInt(`${trgDim.width}`) - pL * 2 - bWidth + un;
h = 'auto'; h = 'auto';
} }
} }

Loading…
Cancel
Save