[FEAT] Prevent canvas from resizing when hiding layers
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user