diff --git a/packages/drawing-response/src/drawing-response/drawable-text.jsx b/packages/drawing-response/src/drawing-response/drawable-text.jsx index 9bfa9a09f8..4872c3cfd5 100644 --- a/packages/drawing-response/src/drawing-response/drawable-text.jsx +++ b/packages/drawing-response/src/drawing-response/drawable-text.jsx @@ -219,7 +219,6 @@ export default class TextDrawable { }; newStage.on('click', stageClickHandler); - this.eventListenersDetachArray.push(() => newStage.off('click', stageClickHandler)); } @@ -241,11 +240,38 @@ export default class TextDrawable { onDblTap: (e) => this.handleDblClick(e, text), onTransform: (e) => this.handleTransform(e, textNode), onTransformEnd: this.props.handleSessionChange, - onMouseDown: this.handleMouseDown, - onTouchStart: this.handleMouseDown, - onMouseUp: this.handleMouseUp, - onTouchEnd: this.handleMouseUp, - onDragEnd: this.props.handleSessionChange, + + onMouseDown: (e) => { + e.cancelBubble = true; + this.props.toggleTextSelected(true); + }, + onTouchStart: (e) => { + e.cancelBubble = true; + this.props.toggleTextSelected(true); + }, + + onDragStart: (e) => { + e.cancelBubble = true; + this.props.toggleTextSelected(true); + }, + onDragMove: (e) => { + e.cancelBubble = true; + }, + onDragEnd: (e) => { + e.cancelBubble = true; + this.props.toggleTextSelected(false); + this.props.handleSessionChange(); + }, + + onMouseUp: (e) => { + e.cancelBubble = true; + this.props.toggleTextSelected(false); + }, + onTouchEnd: (e) => { + e.cancelBubble = true; + this.props.toggleTextSelected(false); + }, + onMouseEnter: this.props.onMouseOverElement, onMouseLeave: this.props.onMouseOutElement, }; @@ -289,4 +315,4 @@ export default class TextDrawable { ]; }); } -} +} \ No newline at end of file