mirror of
https://github.com/storytold/photocraft.git
synced 2026-10-24 09:57:08 -06:00
* fix(clipboard): render copied shapes in destination canvas space When a copied shape group is placed beyond its source canvas, rebuild its vector caches against the destination canvas and pixel format. Previously a centered paste into a larger document could clip the caches to an empty source-sized frame, leaving no transform bounds and incorrect effects until a point edit refreshed each shape. Restore missing shape caches and refresh source-clipped caches when canvas dimensions change. Cover Paste and Copy to Document, nested group contents, 8/16-bit destinations, rendered cache equality, transform bounds and movement Undo. * fix(clipboard): measure shape placement before destination clipping Restore missing source-space shape caches before measuring copy bounds, then adapt and translate for the destination. Re-render empty caches when shapes move back onto the canvas instead of shifting an empty raster. Add focused integration coverage for 32 combinations of partial and full destination clipping, grouped shapes, missing caches, 8/16-bit output, centered and point placement, and Undo/Redo. Clippy and WASM checks pass. --------- Co-authored-by: kotulsky <7805437+kotulsky@users.noreply.github.com> Co-authored-by: Brandon Thomas <echelon@gmail.com>
82 lines
1.9 KiB
Rust
82 lines
1.9 KiB
Rust
//! The crate's integration tests, linked into one test binary.
|
|
|
|
mod affinity;
|
|
mod artboard_export_names;
|
|
mod atn_crystallize_cell_size;
|
|
mod atn_ripple_amount;
|
|
mod atn_stroke_width;
|
|
mod background_and_mask_depth;
|
|
mod background_layer_consistency;
|
|
mod brush_smoothing;
|
|
mod camera_raw_exposure_clamp;
|
|
mod camera_raw_noise_clamp;
|
|
mod clipping_semantics;
|
|
mod close_document;
|
|
mod command_lookup;
|
|
mod convert_keeps_references;
|
|
mod copy_shape_placement;
|
|
mod corpus_atn;
|
|
mod crop_content_aware;
|
|
mod current_affinity_artboards;
|
|
mod duplicate_layer_comps;
|
|
mod duplicate_slices;
|
|
mod duplicate_variables;
|
|
mod empty_selection_combine;
|
|
mod eraser_locked;
|
|
mod explicit_layer_target;
|
|
mod export_shape_strokes;
|
|
mod fill_lock_transparency;
|
|
mod filter_locked;
|
|
mod finite_command_params;
|
|
mod flatten_background;
|
|
mod gallery_colours;
|
|
mod gauss_small_sigma;
|
|
mod gradient_overlay_strokes;
|
|
mod guide_layout_limit;
|
|
mod guide_layout_preview;
|
|
mod hdr_gamma_direction;
|
|
mod huge_doc_flatten;
|
|
mod jpeg_exif_resolution;
|
|
mod keyboard_shortcut_bulk;
|
|
mod kra;
|
|
mod kys_import;
|
|
mod layer_delete_last;
|
|
mod layer_mask_depth;
|
|
mod layer_props_several;
|
|
mod layer_range_panel_order;
|
|
mod live_line_transform;
|
|
mod merge_transparent_bounds;
|
|
mod missing_layer_error;
|
|
mod nonfinite_style;
|
|
mod open_identity;
|
|
mod path_blur_speed_clamp;
|
|
mod path_transform_target;
|
|
mod pdn;
|
|
mod photoshop_oracles;
|
|
mod pixel_lock_edits;
|
|
mod precheck;
|
|
mod prefs_usage;
|
|
mod rasterize_psd_reopen;
|
|
mod rasterize_selected_layers;
|
|
mod rendering_preferences;
|
|
mod save_keeps_encoding;
|
|
mod selection_layer_commands;
|
|
mod shortcut_sets;
|
|
mod shortcuts_headless;
|
|
mod smart_clipboard_sources;
|
|
mod smart_duplicates;
|
|
mod smart_filter_canvas_geometry;
|
|
mod smart_object_tones;
|
|
mod smart_psd;
|
|
mod style_and_align;
|
|
mod svg_smart_object;
|
|
mod transform_budget_unclamped;
|
|
mod type_format_targets;
|
|
mod type_postscript_font;
|
|
mod undo_keeps_active_layer;
|
|
mod unicode_colors;
|
|
mod unsupported_smart_filters;
|
|
mod wand_transparent_copy;
|
|
mod working_rgb_profile;
|
|
mod xmp_charref;
|