fix bugs relating to resizing canvas width

This commit is contained in:
2025-07-11 22:20:29 +01:00
parent e3729a1ce5
commit a448fcf469
2 changed files with 15 additions and 9 deletions

View File

@@ -11,18 +11,21 @@ struct
el) squares
fun changeSquaresSize (squares, newCanvasWidth, newCanvasHeight) =
Vector.tabulate (newCanvasWidth + 1, fn i =>
if i < Vector.length squares then
Vector.tabulate (newCanvasHeight + 1, fn ii =>
let
val maxPoints = Int.max (newCanvasWidth, newCanvasHeight)
in
Vector.tabulate (maxPoints, fn i =>
if i < Vector.length squares then
let
val yAxis = Vector.sub (squares, i)
in
if ii < Vector.length yAxis then Vector.sub (yAxis, ii)
else {r = 0, g = 0, b = 0, a = 0}
end)
else
Vector.tabulate (newCanvasHeight + 1, fn _ =>
{r = 0, g = 0, b = 0, a = 0}))
Vector.tabulate (maxPoints, fn ii =>
if ii < Vector.length yAxis then Vector.sub (yAxis, ii)
else {r = 0, g = 0, b = 0, a = 0})
end
else
Vector.tabulate (maxPoints, fn _ => {r = 0, g = 0, b = 0, a = 0}))
end
fun addSquare (app, newX, newY, arrowX, arrowY) : app_type =
let
@@ -861,6 +864,9 @@ struct
val squares = changeSquaresSize (squares, newCanvasWidth, canvasHeight)
val arrowX = Int.min (arrowX, newCanvasWidth)
val (xClickPoints, yClickPoints) =
ClickPoints.generate
(windowWidth, windowHeight, newCanvasWidth, canvasHeight)
in
{ mode = mode
, canvasWidth = newCanvasWidth