Do not move mid point for simple arrows bound on both ends
This commit is contained in:
parent
c4a52a982a
commit
06dc04ea5d
@ -863,7 +863,10 @@ export const updateBoundElements = (
|
|||||||
? elementsMap.get(element.startBinding.elementId)
|
? elementsMap.get(element.startBinding.elementId)
|
||||||
: null;
|
: null;
|
||||||
const endBindingElement = element.endBinding
|
const endBindingElement = element.endBinding
|
||||||
? elementsMap.get(element.endBinding.elementId)
|
? // PERF: If the arrow is bound to the same element on both ends.
|
||||||
|
startBindingElement?.id === element.endBinding.elementId
|
||||||
|
? startBindingElement
|
||||||
|
: elementsMap.get(element.endBinding.elementId)
|
||||||
: null;
|
: null;
|
||||||
|
|
||||||
let startBounds: Bounds | null = null;
|
let startBounds: Bounds | null = null;
|
||||||
@ -936,6 +939,9 @@ export const updateBoundElements = (
|
|||||||
...(changedElement.id === element.endBinding?.elementId
|
...(changedElement.id === element.endBinding?.elementId
|
||||||
? { endBinding: bindings.endBinding }
|
? { endBinding: bindings.endBinding }
|
||||||
: {}),
|
: {}),
|
||||||
|
moveMidPointsWithElement:
|
||||||
|
!!startBindingElement &&
|
||||||
|
startBindingElement?.id === endBindingElement?.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const boundText = getBoundTextElement(element, elementsMap);
|
const boundText = getBoundTextElement(element, elementsMap);
|
||||||
|
@ -1426,6 +1426,7 @@ export class LinearElementEditor {
|
|||||||
otherUpdates?: {
|
otherUpdates?: {
|
||||||
startBinding?: PointBinding | null;
|
startBinding?: PointBinding | null;
|
||||||
endBinding?: PointBinding | null;
|
endBinding?: PointBinding | null;
|
||||||
|
moveMidPointsWithElement?: boolean | null;
|
||||||
},
|
},
|
||||||
) {
|
) {
|
||||||
const { points } = element;
|
const { points } = element;
|
||||||
@ -1471,6 +1472,14 @@ export class LinearElementEditor {
|
|||||||
: points.map((p, idx) => {
|
: points.map((p, idx) => {
|
||||||
const current = pointUpdates.get(idx)?.point ?? p;
|
const current = pointUpdates.get(idx)?.point ?? p;
|
||||||
|
|
||||||
|
if (
|
||||||
|
otherUpdates?.moveMidPointsWithElement &&
|
||||||
|
idx !== 0 &&
|
||||||
|
idx !== points.length - 1
|
||||||
|
) {
|
||||||
|
return pointFrom<LocalPoint>(current[0], current[1]);
|
||||||
|
}
|
||||||
|
|
||||||
return pointFrom<LocalPoint>(
|
return pointFrom<LocalPoint>(
|
||||||
current[0] - offsetX,
|
current[0] - offsetX,
|
||||||
current[1] - offsetY,
|
current[1] - offsetY,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user