diff --git a/src/hooks/useShapeFormatPainter.ts b/src/hooks/useShapeFormatPainter.ts
index 6cf50d1f..362e0594 100644
--- a/src/hooks/useShapeFormatPainter.ts
+++ b/src/hooks/useShapeFormatPainter.ts
@@ -6,12 +6,13 @@ export default () => {
const mainStore = useMainStore()
const { shapeFormatPainter, handleElement } = storeToRefs(mainStore)
- const toggleShapeFormatPainter = () => {
+ const toggleShapeFormatPainter = (keep = false) => {
const _handleElement = handleElement.value as PPTShapeElement
if (shapeFormatPainter.value) mainStore.setShapeFormatPainter(null)
else {
mainStore.setShapeFormatPainter({
+ keep,
fill: _handleElement.fill,
gradient: _handleElement.gradient,
outline: _handleElement.outline,
diff --git a/src/hooks/useTextFormatPainter.ts b/src/hooks/useTextFormatPainter.ts
index 9e752c56..6eaeb86f 100644
--- a/src/hooks/useTextFormatPainter.ts
+++ b/src/hooks/useTextFormatPainter.ts
@@ -5,10 +5,11 @@ export default () => {
const mainStore = useMainStore()
const { richTextAttrs, textFormatPainter } = storeToRefs(mainStore)
- const toggleTextFormatPainter = () => {
+ const toggleTextFormatPainter = (keep = false) => {
if (textFormatPainter.value) mainStore.setTextFormatPainter(null)
else {
mainStore.setTextFormatPainter({
+ keep,
bold: richTextAttrs.value.bold,
em: richTextAttrs.value.em,
underline: richTextAttrs.value.underline,
diff --git a/src/types/edit.ts b/src/types/edit.ts
index cc93fda3..398add4a 100644
--- a/src/types/edit.ts
+++ b/src/types/edit.ts
@@ -102,6 +102,7 @@ export type CreatingElement = CreatingTextElement | CreatingShapeElement | Creat
export type TextFormatPainterKeys = 'bold' | 'em' | 'underline' | 'strikethrough' | 'color' | 'backcolor' | 'fontsize' | 'fontname' | 'align'
export interface TextFormatPainter {
+ keep: boolean
bold?: boolean
em?: boolean
underline?: boolean
@@ -114,6 +115,7 @@ export interface TextFormatPainter {
}
export interface ShapeFormatPainter {
+ keep: boolean
fill?: string
gradient?: ShapeGradient
outline?: PPTElementOutline
diff --git a/src/views/Editor/Toolbar/ElementStylePanel/ShapeStylePanel.vue b/src/views/Editor/Toolbar/ElementStylePanel/ShapeStylePanel.vue
index 77587f9e..d6f65ce1 100644
--- a/src/views/Editor/Toolbar/ElementStylePanel/ShapeStylePanel.vue
+++ b/src/views/Editor/Toolbar/ElementStylePanel/ShapeStylePanel.vue
@@ -198,8 +198,9 @@