mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-29 12:17:14 -06:00
Edits refuse to leave anything beyond MAX_COORD (doc_sane checks the artboards, the guides, the ruler origin and the objects an edit touches), but the native loader didn't check them. A file with one object, artboard, guide or ruler origin out there opened without a warning, and then every move failed with "result would exceed the canvas", in-range objects included; saving kept it that way. Document::drop_beyond_canvas removes objects whose geometric bounds aren't finite or reach past MAX_COORD (a layer or non-clipping group keeps its children within it), artboards with their artboard guides, and guides out there, and puts the ruler origin back at the origin. load_file runs it after the depth limit and reports what it did with the other load notes; a file whose artboards all lie beyond the canvas is refused.