修复右键图层时 pointerdown 被取消导致右键菜单无法打开的问题
This commit is contained in:
@@ -214,14 +214,10 @@ export function useImageCanvasStageInteractions({
|
||||
}
|
||||
}, [finishViewportInteraction, flushMinimapViewportDrag]);
|
||||
|
||||
const rejectRightButtonInteraction = useCallback(
|
||||
(event: ReactPointerEvent<HTMLElement | HTMLDivElement>) => {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
clearActiveInteraction();
|
||||
},
|
||||
[clearActiveInteraction],
|
||||
);
|
||||
const rejectRightButtonInteraction = useCallback(() => {
|
||||
// Preserve the pointer event so the matching contextmenu event can still open.
|
||||
clearActiveInteraction();
|
||||
}, [clearActiveInteraction]);
|
||||
|
||||
const setShiftPressed = useCallback((pressed: boolean) => {
|
||||
isShiftPressedRef.current = pressed;
|
||||
@@ -247,7 +243,7 @@ export function useImageCanvasStageInteractions({
|
||||
(event: ReactPointerEvent<HTMLDivElement>) => {
|
||||
const button = getPointerButton(event);
|
||||
if (button === 2) {
|
||||
rejectRightButtonInteraction(event);
|
||||
rejectRightButtonInteraction();
|
||||
return;
|
||||
}
|
||||
if (button === 1 || (button === 0 && effectiveTool === 'hand')) {
|
||||
@@ -281,14 +277,20 @@ export function useImageCanvasStageInteractions({
|
||||
}
|
||||
clearCanvasFocus();
|
||||
},
|
||||
[canvasViewportRef, clearCanvasFocus, effectiveTool, startPan],
|
||||
[
|
||||
canvasViewportRef,
|
||||
clearCanvasFocus,
|
||||
effectiveTool,
|
||||
rejectRightButtonInteraction,
|
||||
startPan,
|
||||
],
|
||||
);
|
||||
|
||||
const handleLayerPointerDown = useCallback(
|
||||
(event: ReactPointerEvent<HTMLElement>, layer: CanvasLayer) => {
|
||||
const button = getPointerButton(event);
|
||||
if (button === 2) {
|
||||
rejectRightButtonInteraction(event);
|
||||
rejectRightButtonInteraction();
|
||||
return;
|
||||
}
|
||||
if (button === 1 || (button === 0 && effectiveTool === 'hand')) {
|
||||
@@ -426,6 +428,7 @@ export function useImageCanvasStageInteractions({
|
||||
pickIconSpecFromLayer,
|
||||
pickPublicationReferenceFromLayer,
|
||||
pickUiDesignSpecFromLayer,
|
||||
rejectRightButtonInteraction,
|
||||
selectedLayerIds,
|
||||
setGenerateDialog,
|
||||
setSelectedLayerId,
|
||||
@@ -499,7 +502,7 @@ export function useImageCanvasStageInteractions({
|
||||
}
|
||||
const button = getPointerButton(event);
|
||||
if (button === 2) {
|
||||
rejectRightButtonInteraction(event);
|
||||
rejectRightButtonInteraction();
|
||||
return;
|
||||
}
|
||||
if (button === 1 || (button === 0 && effectiveTool === 'hand')) {
|
||||
@@ -550,6 +553,7 @@ export function useImageCanvasStageInteractions({
|
||||
canvasGenerationDialogs,
|
||||
effectiveTool,
|
||||
layers,
|
||||
rejectRightButtonInteraction,
|
||||
selectedLayerIds,
|
||||
setSelectedLayerId,
|
||||
setSelectedLayerIds,
|
||||
|
||||
Reference in New Issue
Block a user