mirror of
https://github.com/excalidraw/excalidraw.git
synced 2025-05-03 10:00:07 -04:00
feat: improve elbow arrow keyboard move (#8392)
This commit is contained in:
parent
b459e5cfd2
commit
afb68a6467
1 changed files with 31 additions and 11 deletions
|
@ -4062,7 +4062,7 @@ class App extends React.Component<AppProps, AppState> {
|
|||
}
|
||||
|
||||
if (isArrowKey(event.key)) {
|
||||
const selectedElements = this.scene.getSelectedElements({
|
||||
let selectedElements = this.scene.getSelectedElements({
|
||||
selectedElementIds: this.state.selectedElementIds,
|
||||
includeBoundTextElement: true,
|
||||
includeElementsInFrames: true,
|
||||
|
@ -4072,17 +4072,37 @@ class App extends React.Component<AppProps, AppState> {
|
|||
| ExcalidrawArrowElement
|
||||
| undefined;
|
||||
|
||||
const step = elbowArrow
|
||||
? elbowArrow.startBinding || elbowArrow.endBinding
|
||||
? 0
|
||||
: ELEMENT_TRANSLATE_AMOUNT
|
||||
: (this.getEffectiveGridSize() &&
|
||||
(event.shiftKey
|
||||
? ELEMENT_TRANSLATE_AMOUNT
|
||||
: this.getEffectiveGridSize())) ||
|
||||
const arrowIdsToRemove = new Set<string>();
|
||||
|
||||
selectedElements
|
||||
.filter(isElbowArrow)
|
||||
.filter((arrow) => {
|
||||
const startElementNotInSelection =
|
||||
arrow.startBinding &&
|
||||
!selectedElements.some(
|
||||
(el) => el.id === arrow.startBinding?.elementId,
|
||||
);
|
||||
const endElementNotInSelection =
|
||||
arrow.endBinding &&
|
||||
!selectedElements.some(
|
||||
(el) => el.id === arrow.endBinding?.elementId,
|
||||
);
|
||||
return startElementNotInSelection || endElementNotInSelection;
|
||||
})
|
||||
.forEach((arrow) => arrowIdsToRemove.add(arrow.id));
|
||||
|
||||
selectedElements = selectedElements.filter(
|
||||
(el) => !arrowIdsToRemove.has(el.id),
|
||||
);
|
||||
|
||||
const step =
|
||||
(this.getEffectiveGridSize() &&
|
||||
(event.shiftKey
|
||||
? ELEMENT_SHIFT_TRANSLATE_AMOUNT
|
||||
: ELEMENT_TRANSLATE_AMOUNT);
|
||||
? ELEMENT_TRANSLATE_AMOUNT
|
||||
: this.getEffectiveGridSize())) ||
|
||||
(event.shiftKey
|
||||
? ELEMENT_SHIFT_TRANSLATE_AMOUNT
|
||||
: ELEMENT_TRANSLATE_AMOUNT);
|
||||
|
||||
let offsetX = 0;
|
||||
let offsetY = 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue