Next release

So far this release is a set of fixes: camera coasting and edge scrolling now move at the same rate on high-refresh displays, rotated images stay put when a crop changes their size, and embed hostname matching no longer trusts lookalike hosts.

Bug fixes

  • Fix camera coasting after a fling, and edge scrolling, running roughly twice as fast on a 120 Hz display as on a 60 Hz one. Both now scale by the elapsed tick time, so motion per second is the same at any refresh rate. (#10501)
  • Fix rotated images jumping on the canvas when their aspect ratio or crop zoom changed, or when the image was replaced. (#10233)
  • Fix embed hostname matching trusting lookalike hosts such as tldraw.com.evil.io, which were rendered with the matched definition's relaxed iframe permissions. A host must now be the pattern itself or a subdomain of it. (#10196)
  • Fix geometry hit tests, nearest-point, and length calculations losing precision after a shape's SVG path data was generated. getSvgPathData rounded the geometry's stored points to two decimals in place, and geometries are cached per shape, so every later calculation used the rounded points. (#10600)
  • Fix keyboard shape navigation, and Editor.selectAdjacentShape('prev'), selecting the second-to-last shape instead of the last one when nothing is selected. (#10601)
  • Fix Editor.getCurrentTheme() returning undefined after setCurrentTheme() was called with an unregistered theme id. The call is now rejected and the current theme is kept. (#10602)
  • Fix Group2d.transform dropping its ignored children, resetting the isInternal, excludeFromShapeBounds, and isEmptyLabel flags, and discarding its opts argument. It now matches the base Geometry2d.transform signature. (#10603)
Prev
Releases
Next
v5.4.0