@@ -405,6 +405,7 @@ if (geometry&&geometry.isValid()) {
405405createSpeechBubble ( mergeOverlappingShapes ( geometry ) ) ;
406406} else {
407407canvasLogger . warn ( "jsts up error" ) ;
408+ sbClear ( ) ;
408409}
409410
410411points = [ ] ;
@@ -424,6 +425,7 @@ createSpeechBubble(mergeOverlappingShapes(geometry));
424425points = [ ] ;
425426} else {
426427canvasLogger . warn ( "jsts up error" ) ;
428+ sbClear ( ) ;
427429}
428430updateObjectSelectability ( ) ;
429431requestAnimationFrame ( ( ) => canvas . renderAll ( ) ) ;
@@ -493,9 +495,53 @@ canvas.remove(rect);
493495event . target . targetObject . customType = "" ;
494496canvas . requestRenderAll ( ) ;
495497}
498+ if ( isFreehandBubblePath ( event . target ) ) {
499+ const rect = getFreehandBubbleRectByPath ( event . target ) ;
500+ const textbox = getFreehandBubbleTextByPath ( event . target ) ;
501+ canvas . remove ( rect ) ;
502+ canvas . remove ( textbox ) ;
503+ canvas . requestRenderAll ( ) ;
504+ }
505+ if ( isFreehandBubbleText ( event . target ) ) {
506+ const rect = getFreehandBubbleRectByPath ( event . target . targetObject ) ;
507+ canvas . remove ( rect ) ;
508+ event . target . targetObject . customType = "" ;
509+ canvas . requestRenderAll ( ) ;
510+ }
496511} ) ;
497512
513+ canvas . on ( "object:moving" , function ( event ) {
514+ if ( isFreehandBubblePath ( event . target ) ) {
515+ eventLogger . trace ( 'object:moving freehandBubble' ) ;
516+ updateFreehandBubblePositions ( event . target ) ;
517+ canvas . requestRenderAll ( ) ;
518+ }
519+ } ) ;
498520
521+ canvas . on ( "mouse:up" , function ( event ) {
522+ if ( isFreehandBubblePath ( event . target ) ) {
523+ eventLogger . trace ( 'mouse:up freehandBubble' ) ;
524+ updateFreehandBubblePositions ( event . target ) ;
525+ }
526+ } ) ;
527+
528+ canvas . on ( "text:changed" , function ( event ) {
529+ if ( isFreehandBubbleText ( event . target ) ) {
530+ eventLogger . trace ( 'text:changed freehandBubble' ) ;
531+ requestAnimationFrame ( ( ) => {
532+ freehandBubbleTextChanged ( event . target ) ;
533+ } ) ;
534+ }
535+ } ) ;
536+
537+ canvas . on ( "object:scaling" , function ( event ) {
538+ if ( isFreehandBubblePath ( event . target ) ) {
539+ eventLogger . trace ( 'object:scaling freehandBubble' ) ;
540+ event . target . baseScaleX = event . target . scaleX ;
541+ event . target . baseScaleY = event . target . scaleY ;
542+ updateFreehandBubbleMetrics ( event . target ) ;
543+ }
544+ } ) ;
499545
500546
501547
0 commit comments