@@ -351,13 +351,23 @@ export class CommandAdapt {
351351 } )
352352 this . draw . render ( { isSetCursor : false } )
353353 } else {
354+ let isSubmitHistory = true
354355 const { endIndex } = this . range . getRange ( )
355356 const elementList = this . draw . getElementList ( )
356357 const enterElement = elementList [ endIndex ]
357358 if ( enterElement ?. value === ZERO ) {
358359 enterElement . font = payload
359- this . draw . render ( { curIndex : endIndex , isCompute : false } )
360+ } else {
361+ this . range . setDefaultStyle ( {
362+ font : payload
363+ } )
364+ isSubmitHistory = false
360365 }
366+ this . draw . render ( {
367+ isSubmitHistory,
368+ curIndex : endIndex ,
369+ isCompute : false
370+ } )
361371 }
362372 }
363373
@@ -380,6 +390,15 @@ export class CommandAdapt {
380390 if ( enterElement ?. value === ZERO ) {
381391 changeElementList . push ( enterElement )
382392 renderOption = { curIndex : endIndex }
393+ } else {
394+ this . range . setDefaultStyle ( {
395+ size : payload
396+ } )
397+ this . draw . render ( {
398+ curIndex : endIndex ,
399+ isCompute : false ,
400+ isSubmitHistory : false
401+ } )
383402 }
384403 }
385404 if ( ! changeElementList . length ) return
@@ -402,6 +421,7 @@ export class CommandAdapt {
402421 public sizeAdd ( ) {
403422 const isDisabled = this . draw . isReadonly ( ) || this . draw . isDisabled ( )
404423 if ( isDisabled ) return
424+ const { defaultSize, maxSize } = this . options
405425 const selection = this . range . getTextLikeSelectionElementList ( )
406426 // 选区设置或设置换行处样式
407427 let renderOption : IDrawOption = { }
@@ -416,10 +436,20 @@ export class CommandAdapt {
416436 if ( enterElement ?. value === ZERO ) {
417437 changeElementList . push ( enterElement )
418438 renderOption = { curIndex : endIndex }
439+ } else {
440+ const style = this . range . getDefaultStyle ( )
441+ const anchorSize = style ?. size || enterElement . size || defaultSize
442+ this . range . setDefaultStyle ( {
443+ size : anchorSize + 2 > maxSize ? maxSize : anchorSize + 2
444+ } )
445+ this . draw . render ( {
446+ curIndex : endIndex ,
447+ isCompute : false ,
448+ isSubmitHistory : false
449+ } )
419450 }
420451 }
421452 if ( ! changeElementList . length ) return
422- const { defaultSize, maxSize } = this . options
423453 let isExistUpdate = false
424454 changeElementList . forEach ( el => {
425455 if ( ! el . size ) {
@@ -441,6 +471,7 @@ export class CommandAdapt {
441471 public sizeMinus ( ) {
442472 const isDisabled = this . draw . isReadonly ( ) || this . draw . isDisabled ( )
443473 if ( isDisabled ) return
474+ const { defaultSize, minSize } = this . options
444475 const selection = this . range . getTextLikeSelectionElementList ( )
445476 // 选区设置或设置换行处样式
446477 let renderOption : IDrawOption = { }
@@ -455,10 +486,20 @@ export class CommandAdapt {
455486 if ( enterElement ?. value === ZERO ) {
456487 changeElementList . push ( enterElement )
457488 renderOption = { curIndex : endIndex }
489+ } else {
490+ const style = this . range . getDefaultStyle ( )
491+ const anchorSize = style ?. size || enterElement . size || defaultSize
492+ this . range . setDefaultStyle ( {
493+ size : anchorSize - 2 < minSize ? minSize : anchorSize - 2
494+ } )
495+ this . draw . render ( {
496+ curIndex : endIndex ,
497+ isCompute : false ,
498+ isSubmitHistory : false
499+ } )
458500 }
459501 }
460502 if ( ! changeElementList . length ) return
461- const { defaultSize, minSize } = this . options
462503 let isExistUpdate = false
463504 changeElementList . forEach ( el => {
464505 if ( ! el . size ) {
@@ -488,13 +529,23 @@ export class CommandAdapt {
488529 } )
489530 this . draw . render ( { isSetCursor : false } )
490531 } else {
532+ let isSubmitHistory = true
491533 const { endIndex } = this . range . getRange ( )
492534 const elementList = this . draw . getElementList ( )
493535 const enterElement = elementList [ endIndex ]
494536 if ( enterElement ?. value === ZERO ) {
495537 enterElement . bold = ! enterElement . bold
496- this . draw . render ( { curIndex : endIndex , isCompute : false } )
538+ } else {
539+ this . range . setDefaultStyle ( {
540+ bold : enterElement . bold ? false : ! this . range . getDefaultStyle ( ) ?. bold
541+ } )
542+ isSubmitHistory = false
497543 }
544+ this . draw . render ( {
545+ isSubmitHistory,
546+ curIndex : endIndex ,
547+ isCompute : false
548+ } )
498549 }
499550 }
500551
@@ -509,13 +560,25 @@ export class CommandAdapt {
509560 } )
510561 this . draw . render ( { isSetCursor : false } )
511562 } else {
563+ let isSubmitHistory = true
512564 const { endIndex } = this . range . getRange ( )
513565 const elementList = this . draw . getElementList ( )
514566 const enterElement = elementList [ endIndex ]
515567 if ( enterElement ?. value === ZERO ) {
516568 enterElement . italic = ! enterElement . italic
517- this . draw . render ( { curIndex : endIndex , isCompute : false } )
569+ } else {
570+ this . range . setDefaultStyle ( {
571+ italic : enterElement . italic
572+ ? false
573+ : ! this . range . getDefaultStyle ( ) ?. italic
574+ } )
575+ isSubmitHistory = false
518576 }
577+ this . draw . render ( {
578+ isSubmitHistory,
579+ curIndex : endIndex ,
580+ isCompute : false
581+ } )
519582 }
520583 }
521584
@@ -547,13 +610,25 @@ export class CommandAdapt {
547610 isCompute : false
548611 } )
549612 } else {
613+ let isSubmitHistory = true
550614 const { endIndex } = this . range . getRange ( )
551615 const elementList = this . draw . getElementList ( )
552616 const enterElement = elementList [ endIndex ]
553617 if ( enterElement ?. value === ZERO ) {
554618 enterElement . underline = ! enterElement . underline
555- this . draw . render ( { curIndex : endIndex , isCompute : false } )
619+ } else {
620+ this . range . setDefaultStyle ( {
621+ underline : enterElement ?. underline
622+ ? false
623+ : ! this . range . getDefaultStyle ( ) ?. underline
624+ } )
625+ isSubmitHistory = false
556626 }
627+ this . draw . render ( {
628+ isSubmitHistory,
629+ curIndex : endIndex ,
630+ isCompute : false
631+ } )
557632 }
558633 }
559634
@@ -571,13 +646,25 @@ export class CommandAdapt {
571646 isCompute : false
572647 } )
573648 } else {
649+ let isSubmitHistory = true
574650 const { endIndex } = this . range . getRange ( )
575651 const elementList = this . draw . getElementList ( )
576652 const enterElement = elementList [ endIndex ]
577653 if ( enterElement ?. value === ZERO ) {
578654 enterElement . strikeout = ! enterElement . strikeout
579- this . draw . render ( { curIndex : endIndex , isCompute : false } )
655+ } else {
656+ this . range . setDefaultStyle ( {
657+ strikeout : enterElement . strikeout
658+ ? false
659+ : ! this . range . getDefaultStyle ( ) ?. strikeout
660+ } )
661+ isSubmitHistory = false
580662 }
663+ this . draw . render ( {
664+ isSubmitHistory,
665+ curIndex : endIndex ,
666+ isCompute : false
667+ } )
581668 }
582669 }
583670
@@ -656,6 +743,7 @@ export class CommandAdapt {
656743 isCompute : false
657744 } )
658745 } else {
746+ let isSubmitHistory = true
659747 const { endIndex } = this . range . getRange ( )
660748 const elementList = this . draw . getElementList ( )
661749 const enterElement = elementList [ endIndex ]
@@ -665,8 +753,17 @@ export class CommandAdapt {
665753 } else {
666754 delete enterElement . color
667755 }
668- this . draw . render ( { curIndex : endIndex , isCompute : false } )
756+ } else {
757+ this . range . setDefaultStyle ( {
758+ color : payload || undefined
759+ } )
760+ isSubmitHistory = false
669761 }
762+ this . draw . render ( {
763+ isSubmitHistory,
764+ curIndex : endIndex ,
765+ isCompute : false
766+ } )
670767 }
671768 }
672769
@@ -687,6 +784,7 @@ export class CommandAdapt {
687784 isCompute : false
688785 } )
689786 } else {
787+ let isSubmitHistory = true
690788 const { endIndex } = this . range . getRange ( )
691789 const elementList = this . draw . getElementList ( )
692790 const enterElement = elementList [ endIndex ]
@@ -696,8 +794,17 @@ export class CommandAdapt {
696794 } else {
697795 delete enterElement . highlight
698796 }
699- this . draw . render ( { curIndex : endIndex , isCompute : false } )
797+ } else {
798+ this . range . setDefaultStyle ( {
799+ highlight : payload || undefined
800+ } )
801+ isSubmitHistory = false
700802 }
803+ this . draw . render ( {
804+ isSubmitHistory,
805+ curIndex : endIndex ,
806+ isCompute : false
807+ } )
701808 }
702809 }
703810
0 commit comments