dotCooCoo
ca60c8e8a7
Brushes: New Brush makes the brush from the art its options opened with
...
OK in a new scatter, art or pattern brush's Brush Options ran brush.new
without the art the dialog had captured for its preview, so brush.new
read the selection again. A selection changed while the dialog was open
gave the brush other art than the preview showed, and a cleared
selection made OK fail. OK now passes the captured art (the side tile
for a pattern brush) to brush.new.
2026-10-27 14:36:12 +07:00
nrq6993-a11y
678cff6707
G4: Optical margin menu uses shared text flag
...
Squashed from #4309 onto main.
2026-10-27 14:36:12 +07:00
NetterSilver and Claude Haiku 5.5
76e0e5b0ac
Only treat % plus two hex digits as an escape in MCP resource URIs
...
Found while testing crates/mcp/src/resources.rs:169 (decode)
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-27 14:36:12 +07:00
NetterSilver and Claude Haiku 5.5
23f0d323b0
Accept whole-number floats and reject invalid counts for polygon, star and spiral
...
Found while testing crates/engine/src/cmd/create.rs:344 (polygon) and :358 (star; shape.spiral `segments` at :507 reads the same way)
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com >
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-27 14:36:12 +07:00
Rahul and rahul05ranjan
6213302260
fix(doc): decode the linked-image proxy within MAX_RASTER_ALLOC ( #3597 )
...
proxy_png decoded with image's default limits and no header check, while
every other decode path in the project uses MAX_RASTER_ALLOC counted as
RGBA. The header now decides first, and the decoder gets the same budget,
so an image too large to draw gets no preview by header alone, and a
large-but-in-cap image the app itself can open now gets its preview.
Co-authored-by: rahul05ranjan <11793455+rahul05ranjan@users.noreply.github.com >
2026-10-27 14:36:12 +07:00
bflatastic
d6331bec1c
Format: repeat_n in the JSON cap test (clippy manual_repeat_n)
2026-10-27 14:36:12 +07:00
Rahul and rahul05ranjan
36cc081316
fix(format): cap a compressed file's JSON at 256 MB on wasm32 ( #3587 )
...
MAX_JSON was 1 GiB on every target, but on wasm32 the 4 GiB address space
also holds the document the JSON deserializes into, several times its size.
The cap is now a quarter of the native one there, mirroring MAX_BLOBS,
and Unpacked::within makes the cap exercisable wherever a test runs.
Co-authored-by: rahul05ranjan <11793455+rahul05ranjan@users.noreply.github.com >
2026-10-27 14:32:54 +07:00
Rahul and rahul05ranjan
10dfb8b261
fix(format): cap a compressed file's JSON at 256 MB on wasm32 ( #3587 )
...
MAX_JSON was 1 GiB on every target, but on wasm32 the 4 GiB address space
also holds the document the JSON deserializes into, several times its size.
The cap is now a quarter of the native one there, mirroring MAX_BLOBS,
and Unpacked::within makes the cap exercisable wherever a test runs.
Co-authored-by: rahul05ranjan <11793455+rahul05ranjan@users.noreply.github.com >
2026-10-27 14:32:54 +07:00
aiongg
eb0e99a553
Merge pull request #4294 from aiongg/layout
...
refactor: shared module layout (craft-contrib#20)
2026-10-26 21:31:59 -04:00
skylar taylor-barrick
5815205324
Merge pull request #4286 from storytold/fix/nextest-0.9.150
...
ci: require nextest 0.9.150
2026-10-26 18:08:53 -06:00
aiongg
e724228e25
docs: update source paths for the moved files
2026-10-26 22:01:25 +00:00
aiongg
fafab0d822
ci: follow tests_printps.rs to tests/printps.rs in the print workflow path filters
2026-10-26 22:01:25 +00:00
aiongg
91fe32c816
chore(xtask): read the Cursor enum from tools/src/cursor.rs
2026-10-26 22:01:25 +00:00
aiongg
f21dc9e0a3
test(ui-egui): read file_dialog_open from app/files.rs in the picks scan
2026-10-26 22:01:25 +00:00
aiongg
3d39bbb31e
refactor(text): move layout.rs wrapping_tests to layout/wrapping_tests.rs
2026-10-26 22:01:25 +00:00
aiongg
e0db48ba39
refactor(render): move lib.rs items to {blobs,bounds,clock,frame,geometry,node_checks,options,paint,renderer,renderer/images,renderer/nodes,renderer/paint,renderer/text,text_geom,threads}.rs
2026-10-26 22:01:25 +00:00
aiongg
722ecade76
refactor(eps): move legacy_ai.rs items to legacy_ai/{encoding,prolog,writer}.rs
2026-10-26 22:01:25 +00:00
aiongg
412dbcd632
refactor(svg): move import.rs items to import/{convert,importer,layers,prepass}.rs
2026-10-26 22:01:25 +00:00
aiongg
a8935c0ada
refactor(text): move layout.rs items to layout/{bidi,breaking,driver,flow,on_path,region,ruby,vertical}.rs
2026-10-26 22:01:25 +00:00
aiongg
de14f93c05
refactor(text): move fontdb.rs items to fontdb/{build,cache,db,dirs,face,glyph_pen,lookup,names,scan,traits,wanted}.rs
2026-10-26 22:01:25 +00:00
aiongg
22f59b6aea
refactor(trace): move quantize.rs items to quantize/{cut_edge,denoise,palette,rare}.rs
2026-10-26 22:01:25 +00:00
aiongg
ef991b9c8a
refactor(engine): move lib.rs items to {command_sets,doc_state,error,history,interaction,prefs,sanity,session,session/documents,session/edit,session/execute,session/undo}.rs
2026-10-26 22:01:25 +00:00
aiongg
4f7dd93268
refactor(engine): move cmd/variablecmds.rs items to cmd/variablecmds/{csv,library}.rs
2026-10-26 22:01:25 +00:00
aiongg
43ae75d4dc
refactor(engine): move cmd/object.rs items to cmd/object/{align,arrange,bounds,commands,compound,props,shape,spans,transform}.rs
2026-10-26 22:01:25 +00:00
aiongg
c662e76b84
refactor(engine): move cmd/live.rs items to cmd/live/{blend,commands,common,envelope,mesh}.rs
2026-10-26 22:01:25 +00:00
aiongg
f209d2aba2
refactor(engine): move cmd/graph.rs items to cmd/graph/{axis,columns,commands,data,designs,edit,generate,labels,markers,series}.rs
2026-10-26 22:01:25 +00:00
aiongg
f02cf1cb7d
refactor(engine): move cmd/flatten.rs items to cmd/flatten/{analysis,apply,commands,compose,options,presets,report}.rs
2026-10-26 22:01:25 +00:00
aiongg
fa1848be4c
refactor(engine): move cmd/fileio.rs items to cmd/fileio/{access,commands,export_names,formats}.rs
2026-10-26 22:01:25 +00:00
aiongg
2a90e82736
refactor(engine): move cmd/fileio/affinity.rs items to cmd/fileio/affinity/{document,import,layout,master_copies,nodes,paint,text}.rs
2026-10-26 22:01:25 +00:00
aiongg
71aef5cc85
refactor(engine): move cmd/draw2.rs items to cmd/draw2/{anchors,commands,common,cut,freehand,smooth}.rs
2026-10-26 22:01:25 +00:00
aiongg
c75c6a9586
refactor(engine): move cmd/distortcmds.rs items to cmd/distortcmds/{perspective}.rs
2026-10-26 22:01:25 +00:00
aiongg
c2ead918b1
refactor(engine): move cmd/buildcmds.rs items to cmd/buildcmds/{live_paint,shape_builder,trace}.rs
2026-10-26 22:01:25 +00:00
aiongg
48b3ea91f0
refactor(engine): move cmd/brushsym.rs items to cmd/brushsym/{brushes,symbols}.rs
2026-10-26 22:01:24 +00:00
aiongg
7bbf803f7e
refactor(vectorcraft): move main.rs items to {app,host_services,prefs,titlebar}.rs
2026-10-26 22:01:24 +00:00
aiongg
c50026fc86
refactor(ui-egui): move lib.rs items to {app,app/clipboard,app/commands,app/control,app/files,app/fonts,app/frame,app/ime,app/input,app/links,app/prefs,app/screenshot,app/view,caches,clock,services,state}.rs
2026-10-26 21:45:33 +00:00
aiongg
055d017603
refactor(ui-egui): move widgets.rs items to widgets/{blend,buttons,chips,color,drag,dropdowns,labels,numeric,panel_chrome,text,toggles}.rs
2026-10-26 21:45:33 +00:00
aiongg
b3789b280c
refactor(ui-egui): move shortcuts.rs items to shortcuts/{paste,presentation,typing}.rs
2026-10-26 21:45:33 +00:00
aiongg
556825b363
refactor(ui-egui): move panels/swatches.rs items to panels/swatches/{actions,body,dnd,libraries,tiles}.rs
2026-10-26 21:45:33 +00:00
aiongg
d8a6f8f3d8
refactor(ui-egui): move panels/layers.rs items to panels/layers/{controls,model,rows,thumbs}.rs
2026-10-26 21:45:33 +00:00
aiongg
16cdbd1b33
refactor(ui-egui): move menus.rs items to menus/{bar,context,entries,invoke,labels,run,slots,state,submenus,tree,ui_commands}.rs
2026-10-26 21:45:33 +00:00
aiongg
5dfd01e1f1
refactor(ui-egui): move io.rs items to io/{export,open,save}.rs
2026-10-26 21:45:33 +00:00
aiongg
bd1559b8fe
refactor(ui-egui): move chrome.rs items to chrome/{control_bar,hints,status_bar,tabs}.rs
2026-10-26 21:45:33 +00:00
aiongg
dbce5020f2
refactor(ui-egui): move canvas.rs items to canvas/{artboards,context,cursor,drag,grid,home,input,outline,overlays,raster,task_bar,tool_overlays,view}.rs
2026-10-26 21:45:33 +00:00
aiongg
714aecc7b4
refactor(tools): move text.rs items to text/{plain,ports,tool}.rs
2026-10-26 21:45:33 +00:00
aiongg
1b9881ce1e
refactor(tools): move lib.rs items to {context,cursor,input}.rs
2026-10-26 21:45:33 +00:00
aiongg
9eafb73e3f
refactor(tools): move guides.rs items to guides/{snap,targets}.rs
2026-10-26 21:45:33 +00:00
aiongg
443990eb62
refactor(tools): move distort/perspective.rs items to distort/perspective/{tools}.rs
2026-10-26 21:45:33 +00:00
aiongg
e987e6dc58
refactor(tools): move builder.rs items to builder/{cache,live_paint,lookup,map}.rs
2026-10-26 21:45:33 +00:00
aiongg
c84a60350f
refactor(render): move fx.rs items to fx/{bounds,entries,pixels,predicates,raster,renderer}.rs
2026-10-26 21:45:33 +00:00
aiongg
64fef38a50
refactor(pdf): move import.rs items to import/{builder,cid,device,entry,state}.rs
2026-10-26 21:45:33 +00:00