mirror of
https://github.com/excalidraw/excalidraw.git
synced 2025-09-23 09:21:00 +02:00
fix Arrow edit mode selection
This commit is contained in:
@@ -7796,20 +7796,31 @@ class App extends React.Component<AppProps, AppState> {
|
|||||||
if (
|
if (
|
||||||
(hitElement === null || !someHitElementIsSelected) &&
|
(hitElement === null || !someHitElementIsSelected) &&
|
||||||
!event.shiftKey &&
|
!event.shiftKey &&
|
||||||
!pointerDownState.hit.hasHitCommonBoundingBoxOfSelectedElements
|
!pointerDownState.hit.hasHitCommonBoundingBoxOfSelectedElements &&
|
||||||
|
(!this.state.selectedLinearElement?.isEditing ||
|
||||||
|
(hitElement &&
|
||||||
|
hitElement?.id !== this.state.selectedLinearElement?.elementId))
|
||||||
) {
|
) {
|
||||||
this.clearSelection(hitElement);
|
this.clearSelection(hitElement);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.state.selectedLinearElement?.isEditing) {
|
if (this.state.selectedLinearElement?.isEditing) {
|
||||||
this.setState({
|
this.setState((prevState) => ({
|
||||||
selectedElementIds: makeNextSelectedElementIds(
|
selectedLinearElement: prevState.selectedLinearElement
|
||||||
{
|
? {
|
||||||
[this.state.selectedLinearElement.elementId]: true,
|
...prevState.selectedLinearElement,
|
||||||
},
|
isEditing: isBindingElement(hitElement),
|
||||||
this.state,
|
}
|
||||||
),
|
: null,
|
||||||
});
|
selectedElementIds: prevState.selectedLinearElement
|
||||||
|
? makeNextSelectedElementIds(
|
||||||
|
{
|
||||||
|
[prevState.selectedLinearElement.elementId]: true,
|
||||||
|
},
|
||||||
|
this.state,
|
||||||
|
)
|
||||||
|
: makeNextSelectedElementIds({}, prevState),
|
||||||
|
}));
|
||||||
// If we click on something
|
// If we click on something
|
||||||
} else if (hitElement != null) {
|
} else if (hitElement != null) {
|
||||||
// == deep selection ==
|
// == deep selection ==
|
||||||
@@ -10904,6 +10915,7 @@ class App extends React.Component<AppProps, AppState> {
|
|||||||
selectedElementIds: makeNextSelectedElementIds({}, this.state),
|
selectedElementIds: makeNextSelectedElementIds({}, this.state),
|
||||||
activeEmbeddable: null,
|
activeEmbeddable: null,
|
||||||
previousSelectedElementIds: this.state.selectedElementIds,
|
previousSelectedElementIds: this.state.selectedElementIds,
|
||||||
|
selectedLinearElement: null,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user