diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/client/views/InkControlPtHandles.tsx | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/client/views/InkControlPtHandles.tsx b/src/client/views/InkControlPtHandles.tsx index 8eb74381a..94c238b2b 100644 --- a/src/client/views/InkControlPtHandles.tsx +++ b/src/client/views/InkControlPtHandles.tsx @@ -40,6 +40,7 @@ export class InkControlPtHandles extends React.Component<InkControlProps> { const handleIndexA = ((order === 3 ? controlIndex - 1 : controlIndex - 2) + this.props.inkCtrlPoints.length) % this.props.inkCtrlPoints.length; const handleIndexB = (order === 3 ? controlIndex + 2 : controlIndex + 1) % this.props.inkCtrlPoints.length; const brokenIndices = Cast(this.props.inkDoc.brokenInkIndices, listSpec("number")); + const wasSelected = InkStrokeProperties.Instance?._currentPoint === controlIndex; setupMoveUpEvents(this, e, action((e: PointerEvent, down: number[], delta: number[]) => { if (!this.controlUndo) this.controlUndo = UndoManager.StartBatch("drag ink ctrl pt"); @@ -73,7 +74,8 @@ export class InkControlPtHandles extends React.Component<InkControlProps> { this.controlUndo?.end(); this.controlUndo = undefined; } - })); + this.changeCurrPoint(controlIndex); + }), undefined, undefined, () => wasSelected && this.changeCurrPoint(-1)); } } /** @@ -139,10 +141,7 @@ export class InkControlPtHandles extends React.Component<InkControlProps> { strokeWidth={screenSpaceLineWidth / 2} stroke={Colors.MEDIUM_BLUE} fill={broken ? Colors.MEDIUM_BLUE : color} - onPointerDown={(e: any) => { - this.changeCurrPoint(control.I); - this.onControlDown(e, control.I); - }} + onPointerDown={(e: any) => this.onControlDown(e, control.I)} onMouseEnter={() => this.onEnterControl(control.I)} onMouseLeave={this.onLeaveControl} pointerEvents="all" |