[FEAT] Prevent canvas from resizing when hiding layers

This commit is contained in:
2026-01-01 01:33:22 +01:00
parent 37feb62a56
commit e916c80d00
4 changed files with 13 additions and 9 deletions

View File

@@ -89,9 +89,9 @@ export function useDragSprite(options: DragSpriteOptions) {
}
// Get all sprites to calculate dimensions from
// If layers are provided, use all visible layers; otherwise use current sprites
// If layers are provided, use ALL layers (regardless of visibility) to keep canvas size stable
const layers = getLayers();
const spritesToMeasure = layers ? layers.filter(l => l.visible).flatMap(l => l.sprites) : getSprites();
const spritesToMeasure = layers ? layers.flatMap(l => l.sprites) : getSprites();
// Otherwise, calculate based on sprite dimensions across all visible layers
const base = getMaxDimensions(spritesToMeasure);

View File

@@ -357,6 +357,7 @@ export const useLayers = () => {
};
export const getMaxDimensionsAcrossLayers = (layers: Layer[]) => {
const sprites = layers.flatMap(l => (l.visible ? l.sprites : []));
// Consider ALL layers regardless of visibility to keep canvas size stable
const sprites = layers.flatMap(l => l.sprites);
return getMaxDimensionsSingle(sprites);
};