- Enhanced cursor behavior for new tools: semantic select, mask lasso, and mask rectangle. - Updated mask edit state to include mask asset ID and kind. - Implemented inpaint region commands for adding, applying, and removing inpaint regions. - Introduced new operations for lasso and semantic selection tools. - Created UI components for candidate review and inpaint region management. - Added tests for inpaint region commands to ensure functionality. - Updated various components to support new inpaint features and improve user experience.
44 lines
1.3 KiB
TypeScript
44 lines
1.3 KiB
TypeScript
import type { KeybindEvent } from "./keyboard";
|
|
import type { PointerInputEvent, WheelInputEvent } from "./pointer";
|
|
|
|
export function keybindEventFromKeyboardEvent(event: KeyboardEvent): KeybindEvent {
|
|
return {
|
|
key: event.key,
|
|
code: event.code,
|
|
altKey: event.altKey,
|
|
ctrlKey: event.ctrlKey,
|
|
metaKey: event.metaKey,
|
|
shiftKey: event.shiftKey,
|
|
};
|
|
}
|
|
|
|
function normalizePointerType(pointerType: string): PointerInputEvent["pointerType"] {
|
|
if (pointerType === "pen" || pointerType === "touch") return pointerType;
|
|
return "mouse";
|
|
}
|
|
|
|
export function pointerInputEventFromPointerEvent(event: PointerEvent): PointerInputEvent {
|
|
return {
|
|
pointerId: event.pointerId,
|
|
pointerType: normalizePointerType(event.pointerType),
|
|
position: { x: event.offsetX, y: event.offsetY },
|
|
buttons: event.buttons,
|
|
pressure: event.pointerType === "pen" ? event.pressure : 1,
|
|
altKey: event.altKey,
|
|
ctrlKey: event.ctrlKey,
|
|
metaKey: event.metaKey,
|
|
shiftKey: event.shiftKey,
|
|
};
|
|
}
|
|
|
|
export function wheelInputEventFromWheelEvent(event: WheelEvent): WheelInputEvent {
|
|
return {
|
|
position: { x: event.offsetX, y: event.offsetY },
|
|
delta: { x: event.deltaX, y: event.deltaY },
|
|
altKey: event.altKey,
|
|
ctrlKey: event.ctrlKey,
|
|
metaKey: event.metaKey,
|
|
shiftKey: event.shiftKey,
|
|
};
|
|
}
|