mirror of
https://github.com/invoke-ai/InvokeAI.git
synced 2026-04-23 03:00:31 -04:00
feat(ui): merge visible creates new layer
Previously, merge visible deleted all other visible layers. This is not how affinity works, I should have confirmed before making it work like this in the first place.Ï
This commit is contained in:
@@ -43,7 +43,6 @@ const mergeRasterLayers = async (canvasManager: CanvasManager, dispatch: AppDisp
|
||||
objects: [imageDTOToImageObject(result.value)],
|
||||
position: { x: Math.floor(rect.x), y: Math.floor(rect.y) },
|
||||
},
|
||||
isMergingVisible: true,
|
||||
})
|
||||
);
|
||||
|
||||
@@ -70,7 +69,6 @@ const mergeInpaintMasks = async (canvasManager: CanvasManager, dispatch: AppDisp
|
||||
objects: [imageDTOToImageObject(result.value)],
|
||||
position: { x: Math.floor(rect.x), y: Math.floor(rect.y) },
|
||||
},
|
||||
isMergingVisible: true,
|
||||
})
|
||||
);
|
||||
|
||||
|
||||
@@ -123,28 +123,18 @@ export const canvasSlice = createSlice({
|
||||
id: string;
|
||||
overrides?: Partial<CanvasRasterLayerState>;
|
||||
isSelected?: boolean;
|
||||
isMergingVisible?: boolean;
|
||||
}>
|
||||
) => {
|
||||
const { id, overrides, isSelected, isMergingVisible } = action.payload;
|
||||
const { id, overrides, isSelected } = action.payload;
|
||||
const entityState = getRasterLayerState(id, overrides);
|
||||
|
||||
if (isMergingVisible) {
|
||||
// When merging visible, we delete all disabled layers
|
||||
state.rasterLayers.entities = state.rasterLayers.entities.filter((layer) => !layer.isEnabled);
|
||||
}
|
||||
|
||||
state.rasterLayers.entities.push(entityState);
|
||||
|
||||
if (isSelected) {
|
||||
state.selectedEntityIdentifier = getEntityIdentifier(entityState);
|
||||
}
|
||||
},
|
||||
prepare: (payload: {
|
||||
overrides?: Partial<CanvasRasterLayerState>;
|
||||
isSelected?: boolean;
|
||||
isMergingVisible?: boolean;
|
||||
}) => ({
|
||||
prepare: (payload: { overrides?: Partial<CanvasRasterLayerState>; isSelected?: boolean }) => ({
|
||||
payload: { ...payload, id: getPrefixedId('raster_layer') },
|
||||
}),
|
||||
},
|
||||
@@ -822,29 +812,19 @@ export const canvasSlice = createSlice({
|
||||
id: string;
|
||||
overrides?: Partial<CanvasInpaintMaskState>;
|
||||
isSelected?: boolean;
|
||||
isMergingVisible?: boolean;
|
||||
}>
|
||||
) => {
|
||||
const { id, overrides, isSelected, isMergingVisible } = action.payload;
|
||||
const { id, overrides, isSelected } = action.payload;
|
||||
|
||||
const entityState = getInpaintMaskState(id, overrides);
|
||||
|
||||
if (isMergingVisible) {
|
||||
// When merging visible, we delete all disabled layers
|
||||
state.inpaintMasks.entities = state.inpaintMasks.entities.filter((layer) => !layer.isEnabled);
|
||||
}
|
||||
|
||||
state.inpaintMasks.entities.push(entityState);
|
||||
|
||||
if (isSelected) {
|
||||
state.selectedEntityIdentifier = getEntityIdentifier(entityState);
|
||||
}
|
||||
},
|
||||
prepare: (payload?: {
|
||||
overrides?: Partial<CanvasInpaintMaskState>;
|
||||
isSelected?: boolean;
|
||||
isMergingVisible?: boolean;
|
||||
}) => ({
|
||||
prepare: (payload?: { overrides?: Partial<CanvasInpaintMaskState>; isSelected?: boolean }) => ({
|
||||
payload: { ...payload, id: getPrefixedId('inpaint_mask') },
|
||||
}),
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user