diff --git a/src/main.ts b/src/main.ts index 704fe90..c97c64b 100644 --- a/src/main.ts +++ b/src/main.ts @@ -29,7 +29,7 @@ export default function () { // - Лево/Право: ширина 320px, высота = макс (весь viewport по вертикали минус шапка) // - Верх/Низ: высота 320px, ширина = макс (весь viewport по горизонтали) // - Углы: ширина и высота = макс (растянуть обе оси на весь viewport) - // - Центр: текущий размер, только центрирует (не трогает размеры) + // - Центр: размер = 50% viewport (по ширине и высоте), центрируется // Возвращает размер (экранные px) и позицию (canvas-space, прижатую к нужному краю). const DOCK_EDGE_SIZE = 320 function computeDock (position: DockPosition, currentWidth: number, currentHeight: number) { @@ -42,6 +42,7 @@ export default function () { position === 'bottom-left' || position === 'bottom-right' const isLeftRight = position === 'center-left' || position === 'center-right' const isTopBottom = position === 'top-center' || position === 'bottom-center' + const isCenter = position === 'center' let targetW = currentWidth let targetH = currentHeight @@ -54,6 +55,9 @@ export default function () { } else if (isTopBottom) { targetW = maxW targetH = DOCK_EDGE_SIZE + } else if (isCenter) { + targetW = Math.round(maxW / 2) + targetH = Math.round(maxH / 2) } // canvas-units от целевого размера const wCanvas = targetW / zoom