diff --git a/frontend/src/lib/components/HandwriteCanvas.svelte b/frontend/src/lib/components/HandwriteCanvas.svelte index 0517b44..e65b532 100644 --- a/frontend/src/lib/components/HandwriteCanvas.svelte +++ b/frontend/src/lib/components/HandwriteCanvas.svelte @@ -239,10 +239,13 @@ } // stroke 의 refW/refH 와 현재 cssWidth/cssHeight 비례로 ctx.scale 적용 후 그림. - // refW 없는 (legacy) stroke 는 현재 cssWidth/cssHeight 기준 = 1배 (load 시점 기준). + // legacy stroke (refW 없음) 은 *첫 draw 시점* 의 cssWidth/cssHeight 로 fix — + // 그 후 cssWidth 변화 (button click 의 layout shift / 창 크기 조정) 시 비례 유지. function drawStrokeScaled(ctx: CanvasRenderingContext2D, s: Stroke, isInflight: boolean) { - const sx = s.refW && s.refW > 0 ? cssWidth / s.refW : 1; - const sy = s.refH && s.refH > 0 ? cssHeight / s.refH : 1; + if (!s.refW || s.refW <= 0) s.refW = cssWidth; + if (!s.refH || s.refH <= 0) s.refH = cssHeight; + const sx = cssWidth / s.refW; + const sy = cssHeight / s.refH; if (sx === 1 && sy === 1) { drawStroke(ctx, s, isInflight); return;