mirror of
https://github.com/dream-num/univer.git
synced 2026-09-24 15:32:18 +08:00
refactor: revert "fix: no need disable event in scrollbar and selection" (#5650)
This commit is contained in:
@@ -21,7 +21,6 @@ import { UniverDocsPlugin } from '@univerjs/docs';
|
||||
import { UniverDocsUIPlugin } from '@univerjs/docs-ui';
|
||||
import { UniverFormulaEnginePlugin } from '@univerjs/engine-formula';
|
||||
import { UniverRenderEnginePlugin } from '@univerjs/engine-render';
|
||||
import { DEFAULT_WORKBOOK_DATA_DEMO } from '@univerjs/mockdata';
|
||||
import zhCN from '@univerjs/mockdata/locales/zh-CN';
|
||||
import { UniverNetworkPlugin } from '@univerjs/network';
|
||||
import { UniverRPCMainThreadPlugin } from '@univerjs/rpc';
|
||||
@@ -144,7 +143,53 @@ function createNewInstance() {
|
||||
|
||||
// create univer sheet instance
|
||||
if (!IS_E2E) {
|
||||
univer.createUnit(UniverInstanceType.UNIVER_SHEET, DEFAULT_WORKBOOK_DATA_DEMO);
|
||||
univer.createUnit(UniverInstanceType.UNIVER_SHEET, {
|
||||
id: 'fbpG8l',
|
||||
sheetOrder: [
|
||||
'xeyZKmZIRXwhSzwbec9-c',
|
||||
],
|
||||
sheets: {
|
||||
'xeyZKmZIRXwhSzwbec9-c': {
|
||||
id: 'xeyZKmZIRXwhSzwbec9-c',
|
||||
name: 'Sheet1',
|
||||
tabColor: '',
|
||||
hidden: 0,
|
||||
rowCount: 1000,
|
||||
columnCount: 20,
|
||||
zoomRatio: 1,
|
||||
freeze: {
|
||||
xSplit: 0,
|
||||
ySplit: 0,
|
||||
startRow: -1,
|
||||
startColumn: -1,
|
||||
},
|
||||
scrollTop: 0,
|
||||
scrollLeft: 0,
|
||||
defaultColumnWidth: 88,
|
||||
defaultRowHeight: 24,
|
||||
mergeData: [],
|
||||
cellData: {},
|
||||
rowData: {},
|
||||
columnData: {},
|
||||
showGridlines: 1,
|
||||
rowHeader: {
|
||||
width: 46,
|
||||
hidden: 0,
|
||||
},
|
||||
columnHeader: {
|
||||
height: 20,
|
||||
hidden: 0,
|
||||
},
|
||||
rightToLeft: 0,
|
||||
},
|
||||
},
|
||||
resources: [
|
||||
{
|
||||
name: 'SHEET_DATA_VALIDATION_PLUGIN',
|
||||
data: '{"xeyZKmZIRXwhSzwbec9-c":[{"uid":"VvFh9x","type":"date","operator":"greaterThan","formula1":"2020-11-11","ranges":[{"startRow":0,"startColumn":0,"endRow":0,"endColumn":0,"rangeType":0}],"formula2":""},{"uid":"K2P_rg","type":"date","operator":"greaterThanOrEqual","formula1":"2025-11-12","ranges":[{"startRow":0,"startColumn":1,"endRow":0,"endColumn":1,"rangeType":0,"unitId":"fbpG8l","sheetId":"xeyZKmZIRXwhSzwbec9-c"}],"formula2":"","bizInfo":{"showTime":true}}]}',
|
||||
},
|
||||
],
|
||||
});
|
||||
}
|
||||
|
||||
setTimeout(() => {
|
||||
|
||||
@@ -543,7 +543,6 @@ export abstract class BaseObject extends Disposable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Similar to setProps, but only props in BASE_OBJECT_ARRAY_Set
|
||||
* this[pKey] = option[pKey]
|
||||
* @param option
|
||||
*/
|
||||
|
||||
@@ -429,9 +429,6 @@ export class InputManager extends Disposable {
|
||||
* @param offsetY
|
||||
*/
|
||||
private _getObjectAtPos(offsetX: number, offsetY: number) {
|
||||
if (!this._scene.objectsEvented) {
|
||||
return null;
|
||||
}
|
||||
return this._scene?.pick(Vector2.FromArray([offsetX, offsetY]));
|
||||
}
|
||||
|
||||
@@ -463,13 +460,6 @@ export class InputManager extends Disposable {
|
||||
|
||||
// }
|
||||
|
||||
/**
|
||||
* If return true, the event will be dispatched to Scene
|
||||
* Even Scene is not a object, but scene could handle event.
|
||||
* currentObject is null, return true
|
||||
* @param currentObject
|
||||
* @returns boolean
|
||||
*/
|
||||
private _shouldDispatchEventToScene(currentObject: Nullable<Scene | BaseObject>): boolean {
|
||||
// 1. Check for empty object
|
||||
if (currentObject == null) {
|
||||
|
||||
@@ -480,11 +480,6 @@ export class Scene extends Disposable {
|
||||
return this._layers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get layer by zIndex.
|
||||
* This method would create a new Layer if Layer is not exist.
|
||||
* @param zIndex
|
||||
*/
|
||||
getLayer(zIndex: number = 1): Layer {
|
||||
for (const layer of this._layers) {
|
||||
if (layer.zIndex === zIndex) {
|
||||
@@ -521,8 +516,7 @@ export class Scene extends Disposable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Add objects to Layer( Layer is specified by zIndex)
|
||||
* This method would create a new Layer if Layer is not exist.
|
||||
* Add objects to Layer( Layer is specfied by zIndex)
|
||||
* If object is a group, insert all its children and group itself to _objects[].
|
||||
* @param objects
|
||||
* @param zIndex
|
||||
@@ -536,8 +530,7 @@ export class Scene extends Disposable {
|
||||
|
||||
/**
|
||||
* Add object to Layer (Layer is specified by zIndex).
|
||||
* This method would create a new Layer if Layer is not exist.
|
||||
* And if object is a group, insert all its children and group itself to _objects[].
|
||||
* If object is a group, insert all its children and group itself to _objects[].
|
||||
* @param o
|
||||
* @param zIndex layer index
|
||||
* @returns {Scene} scene
|
||||
@@ -995,9 +988,7 @@ export class Scene extends Disposable {
|
||||
|
||||
const scrollBarRect = pickedViewport.pickScrollBar(coord);
|
||||
if (scrollBarRect) {
|
||||
if (scrollBarRect.evented) {
|
||||
return scrollBarRect;
|
||||
}
|
||||
return scrollBarRect;
|
||||
}
|
||||
|
||||
const vecFromSheetContent = pickedViewport.transformVector2SceneCoord(coord);
|
||||
@@ -1267,9 +1258,8 @@ export class Scene extends Disposable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Disable scene.event
|
||||
* If scene.event is disabled, scene.pick(cursor Pos) return null.
|
||||
* After disableObjectsEvent, only the scene itself can respond to pointer events; objects beneath the scene will not.
|
||||
* Then only scene itself can response to pointer event, all objects under the scene would not.
|
||||
* see sceneInputManager@_onPointerMove
|
||||
*/
|
||||
// 禁用对象事件
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -346,8 +346,7 @@ export abstract class Shape<T extends IShapeProps> extends BaseObject {
|
||||
}
|
||||
|
||||
/**
|
||||
* if props not in BASE_OBJECT_ARRAY_Set then this[_key] = props[key]
|
||||
* if props in BASE_OBJECT_ARRAY_Set, You should use transformByState
|
||||
* if BASE_OBJECT_ARRAY_Set.has(key) not exist, then this[_key] = props[key],
|
||||
* @param props
|
||||
*/
|
||||
setProps(props?: T): Shape<T> {
|
||||
|
||||
+1
-1
@@ -386,7 +386,7 @@ export class RefSelectionsRenderService extends BaseSelectionRenderService imple
|
||||
|
||||
this._selectionMoveStart$.next(this.getSelectionDataWithStyle());
|
||||
|
||||
// scene.disableObjectsEvent();
|
||||
scene.disableObjectsEvent();
|
||||
this._clearUpdatingListeners();
|
||||
this._addEndingListeners();
|
||||
|
||||
|
||||
@@ -751,9 +751,6 @@ export class BaseSelectionRenderService extends Disposable implements ISheetSele
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Unsubscribe subjects and enable scene event
|
||||
*/
|
||||
protected _clearUpdatingListeners(): void {
|
||||
const scene = this._scene;
|
||||
scene.enableObjectsEvent();
|
||||
|
||||
@@ -78,8 +78,6 @@ export class SheetSelectionRenderService extends BaseSelectionRenderService impl
|
||||
const { spreadsheetRowHeader, spreadsheetColumnHeader, spreadsheet, spreadsheetLeftTopPlaceholder } = sheetObject;
|
||||
const { scene } = this._context;
|
||||
|
||||
// pointer down ---> selection start
|
||||
// but pointer move & pointer up for selection end is bind on scene, not spreadsheet.
|
||||
this.disposeWithMe(spreadsheet?.onPointerDown$.subscribeEvent((evt: IPointerEvent | IMouseEvent, state) => {
|
||||
if (this.isSelectionDisabled()) return;
|
||||
if (this.inRefSelectionMode()) return;
|
||||
@@ -434,7 +432,7 @@ export class SheetSelectionRenderService extends BaseSelectionRenderService impl
|
||||
}
|
||||
//#endregion
|
||||
|
||||
// scene.disableObjectsEvent();
|
||||
scene.disableObjectsEvent();
|
||||
this._clearUpdatingListeners();
|
||||
this._addEndingListeners();
|
||||
scene.getTransformer()?.clearSelectedObjects();
|
||||
|
||||
@@ -351,7 +351,7 @@ export class SelectionShapeExtension {
|
||||
this._scrollTimer = scrollTimer;
|
||||
scrollTimer.startScroll(newEvtOffsetX, newEvtOffsetY, viewMain);
|
||||
|
||||
// scene.disableObjectsEvent();
|
||||
scene.disableObjectsEvent();
|
||||
|
||||
this._scenePointerMoveSub = scene.onPointerMove$.subscribeEvent((moveEvt: IPointerEvent | IMouseEvent) => {
|
||||
if (this._disabled) {
|
||||
@@ -493,7 +493,7 @@ export class SelectionShapeExtension {
|
||||
scrollTimer.startScroll(newEvtOffsetX, newEvtOffsetY, viewMain);
|
||||
this._scrollTimer = scrollTimer;
|
||||
|
||||
// scene.disableObjectsEvent();
|
||||
scene.disableObjectsEvent();
|
||||
|
||||
this._scenePointerMoveSub = scene.onPointerMove$.subscribeEvent((moveEvt: IPointerEvent | IMouseEvent) => {
|
||||
const { offsetX: moveOffsetX, offsetY: moveOffsetY } = moveEvt;
|
||||
@@ -851,7 +851,7 @@ export class SelectionShapeExtension {
|
||||
|
||||
this._scrollTimer = scrollTimer;
|
||||
|
||||
// scene.disableObjectsEvent();
|
||||
scene.disableObjectsEvent();
|
||||
|
||||
this._controlHandler((o) => {
|
||||
this._fillControlColors.push(o.fill as string);
|
||||
|
||||
Reference in New Issue
Block a user