diff --git a/src/canvas/view/CanvasView.ts b/src/canvas/view/CanvasView.ts index ce5f240ac..6cc3be6ca 100644 --- a/src/canvas/view/CanvasView.ts +++ b/src/canvas/view/CanvasView.ts @@ -29,6 +29,10 @@ export interface MarginPaddingOffsets { paddingRight?: number; paddingBottom?: number; paddingLeft?: number; + borderTopWidth?: number; + borderRightWidth?: number; + borderBottomWidth?: number; + borderLeftWidth?: number; } export type ElementPosOpts = { @@ -516,6 +520,10 @@ export default class CanvasView extends ModuleView { 'paddingRight', 'paddingBottom', 'paddingLeft', + 'borderTopWidth', + 'borderRightWidth', + 'borderBottomWidth', + 'borderLeftWidth', ]; marginPaddingOffsets.forEach(offset => { result[offset] = parseFloat(styles[offset]) * zoom; diff --git a/src/utils/Sorter.ts b/src/utils/Sorter.ts index 8939f0994..6a2d7ccef 100644 --- a/src/utils/Sorter.ts +++ b/src/utils/Sorter.ts @@ -1097,9 +1097,13 @@ export default class Sorter extends View { const offset = trgDim.offsets || {}; const pT = offset.paddingTop || margI; const pL = offset.paddingLeft || margI; - t = trgDim.top + pT; - l = trgDim.left + pL; - w = parseInt(`${trgDim.width}`) - pL * 2 + un; + const bT = offset.borderTopWidth || 0; + const bL = offset.borderLeftWidth || 0; + 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'; } }