mirror of
https://github.com/dream-num/univer.git
synced 2026-09-24 15:32:18 +08:00
fix(scence): support scence can set negtive offset (#7013)
This commit is contained in:
@@ -447,6 +447,26 @@ describe('engine scene viewport extra', () => {
|
||||
expect(moveBoundary.moveLeft).toBeLessThanOrEqual(0);
|
||||
expect(moveBoundary.moveTop).toBeLessThanOrEqual(0);
|
||||
|
||||
const freeMoveTransformer = new Transformer(sceneMock, {
|
||||
moveBoundaryEnabled: false,
|
||||
} as any);
|
||||
const freeMoveBoundary = (freeMoveTransformer as any)._checkMoveBoundary(
|
||||
{
|
||||
left: 820,
|
||||
top: -28,
|
||||
width: 520,
|
||||
height: 520,
|
||||
},
|
||||
0,
|
||||
40,
|
||||
0,
|
||||
0,
|
||||
1280,
|
||||
720
|
||||
);
|
||||
expect(freeMoveBoundary.moveLeft).toBe(0);
|
||||
expect(freeMoveBoundary.moveTop).toBe(40);
|
||||
|
||||
(transformer as any)._startOffsetX = 10;
|
||||
(transformer as any)._startOffsetY = 10;
|
||||
expect((transformer as any)._moveBufferBlocker(11, 11)).toBe(true);
|
||||
|
||||
@@ -74,4 +74,5 @@ export interface ITransformerConfig {
|
||||
|
||||
zeroLeft?: number;
|
||||
zeroTop?: number;
|
||||
moveBoundaryEnabled?: boolean;
|
||||
}
|
||||
|
||||
@@ -206,6 +206,7 @@ export class Transformer extends Disposable implements ITransformerConfig {
|
||||
|
||||
zeroLeft = 0;
|
||||
zeroTop = 0;
|
||||
moveBoundaryEnabled = true;
|
||||
|
||||
/**
|
||||
* leftTop centerTop rightTop
|
||||
@@ -400,6 +401,7 @@ export class Transformer extends Disposable implements ITransformerConfig {
|
||||
boundBoxFunc,
|
||||
useSingleNodeRotation,
|
||||
shouldOverdrawWholeArea,
|
||||
moveBoundaryEnabled,
|
||||
} = this;
|
||||
if (objectTransformerConfig != null) {
|
||||
isCropper = objectTransformerConfig.isCropper ?? isCropper;
|
||||
@@ -447,6 +449,7 @@ export class Transformer extends Disposable implements ITransformerConfig {
|
||||
boundBoxFunc = objectTransformerConfig.boundBoxFunc ?? boundBoxFunc;
|
||||
useSingleNodeRotation = objectTransformerConfig.useSingleNodeRotation ?? useSingleNodeRotation;
|
||||
shouldOverdrawWholeArea = objectTransformerConfig.shouldOverdrawWholeArea ?? shouldOverdrawWholeArea;
|
||||
moveBoundaryEnabled = objectTransformerConfig.moveBoundaryEnabled ?? moveBoundaryEnabled;
|
||||
}
|
||||
|
||||
return {
|
||||
@@ -495,6 +498,7 @@ export class Transformer extends Disposable implements ITransformerConfig {
|
||||
boundBoxFunc,
|
||||
useSingleNodeRotation,
|
||||
shouldOverdrawWholeArea,
|
||||
moveBoundaryEnabled,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -652,6 +656,13 @@ export class Transformer extends Disposable implements ITransformerConfig {
|
||||
}
|
||||
|
||||
private _checkMoveBoundary(moveObject: BaseObject, moveLeft: number, moveTop: number, ancestorLeft: number, ancestorTop: number, topSceneWidth: number, topSceneHeight: number) {
|
||||
if (this._getConfig(moveObject).moveBoundaryEnabled === false) {
|
||||
return {
|
||||
moveLeft,
|
||||
moveTop,
|
||||
};
|
||||
}
|
||||
|
||||
const { left, top, width, height } = moveObject;
|
||||
let resultMoveLeft = moveLeft;
|
||||
let resultMoveTop = moveTop;
|
||||
|
||||
Reference in New Issue
Block a user