mirror of
https://github.com/idrawjs/idraw
synced 2026-05-24 10:08:34 +00:00
feat: add keyboard event for undo
This commit is contained in:
parent
58bb51ad32
commit
150a0759aa
3 changed files with 10 additions and 2 deletions
|
|
@ -11,7 +11,7 @@ import {
|
|||
import { redo, undo } from './mixins/record';
|
||||
import { exportDataURL } from './mixins/file';
|
||||
import { copyElements, pasteElements, cutElements, deleteElements,
|
||||
keyArrowUp, keyArrowDown, keyArrowLeft, keyArrowRight,
|
||||
keyArrowUp, keyArrowDown, keyArrowLeft, keyArrowRight, keyUndo,
|
||||
} from './mixins/keyboard';
|
||||
|
||||
class iDraw extends Core {
|
||||
|
|
@ -68,7 +68,8 @@ class iDraw extends Core {
|
|||
.on('keyboardArrowUp', () => keyArrowUp(this))
|
||||
.on('keyboardArrowDown', () => keyArrowDown(this))
|
||||
.on('keyboardArrowLeft', () => keyArrowLeft(this))
|
||||
.on('keyboardArrowRight', () => keyArrowRight(this));
|
||||
.on('keyboardArrowRight', () => keyArrowRight(this))
|
||||
.on('keyboardUndo', () => keyUndo(this));
|
||||
}
|
||||
this[_hasInited] = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ export type TypeKeyboardEventArgMap = {
|
|||
'keyboardArrowLeft': void;
|
||||
'keyboardArrowUp': void;
|
||||
'keyboardArrowDown': void;
|
||||
'keyboardUndo': void;
|
||||
}
|
||||
|
||||
export interface TypeKeyboardEvent {
|
||||
|
|
@ -35,6 +36,8 @@ export class KeyboardWatcher implements TypeKeyboardEvent {
|
|||
this.trigger('keyboardPaste', undefined);
|
||||
} else if ((e.metaKey === true || e.ctrlKey === true) && e.key === 'x') {
|
||||
this.trigger('keyboardCut', undefined);
|
||||
} else if ((e.metaKey === true || e.ctrlKey === true) && e.key === 'z') {
|
||||
this.trigger('keyboardUndo', undefined);
|
||||
} else if (e.key === 'Backspace') {
|
||||
this.trigger('keyboardDelete', undefined);
|
||||
} else if (e.key === 'ArrowUp') {
|
||||
|
|
|
|||
|
|
@ -99,4 +99,8 @@ export function keyArrowRight(idraw: iDraw) {
|
|||
const { scrollLeft } = idraw.getScreenTransform();
|
||||
idraw.scrollLeft(scrollLeft + keyArrowMoveDistance);
|
||||
}
|
||||
}
|
||||
|
||||
export function keyUndo(idraw: iDraw) {
|
||||
idraw.undo();
|
||||
}
|
||||
Loading…
Reference in a new issue