feat(editor): feat(editor): 鼠标移出workpace,禁用快捷键

This commit is contained in:
roymondchen 2022-05-24 17:09:53 +08:00 committed by jia000
parent cf5e775b84
commit fbd7f80c4f

View File

@ -65,8 +65,13 @@ export default defineComponent({
workspace.value?.focus(); workspace.value?.focus();
}; };
const mouseleaveHandler = () => {
workspace.value?.blur();
};
onMounted(() => { onMounted(() => {
workspace.value?.addEventListener('mouseenter', mouseenterHandler); workspace.value?.addEventListener('mouseenter', mouseenterHandler);
workspace.value?.addEventListener('mouseleave', mouseleaveHandler);
keycon = new KeyController(workspace.value); keycon = new KeyController(workspace.value);
@ -75,85 +80,84 @@ export default defineComponent({
const ctrl = isMac ? 'meta' : 'ctrl'; const ctrl = isMac ? 'meta' : 'ctrl';
keycon keycon
.keydown((e) => {
console.log(e);
e.inputEvent.preventDefault();
})
.keyup('delete', (e) => { .keyup('delete', (e) => {
e.inputEvent.preventDefault(); e.inputEvent.preventDefault();
if (!node.value || isPage(node.value)) return; if (!node.value || isPage(node.value)) return;
services?.editorService.remove(node.value); services?.editorService.remove(node.value);
}) })
.keydown([ctrl, 'c'], (e) => { .keyup('backspace', (e) => {
e.inputEvent.preventDefault(); e.inputEvent.preventDefault();
if (!node.value || isPage(node.value)) return;
services?.editorService.remove(node.value);
})
.keydown([ctrl, 'c'], () => {
node.value && services?.editorService.copy(node.value); node.value && services?.editorService.copy(node.value);
}) })
.keydown([ctrl, 'v'], (e) => { .keydown([ctrl, 'v'], () => {
e.inputEvent.preventDefault();
node.value && services?.editorService.paste(); node.value && services?.editorService.paste();
}) })
.keydown([ctrl, 'x'], (e) => { .keydown([ctrl, 'x'], () => {
e.inputEvent.preventDefault();
if (!node.value || isPage(node.value)) return; if (!node.value || isPage(node.value)) return;
services?.editorService.copy(node.value); services?.editorService.copy(node.value);
services?.editorService.remove(node.value); services?.editorService.remove(node.value);
}) })
.keydown([ctrl, 'z'], (e) => { .keydown([ctrl, 'z'], () => {
e.inputEvent.preventDefault();
services?.editorService.undo(); services?.editorService.undo();
}) })
.keydown([ctrl, 'shift', 'z'], (e) => { .keydown([ctrl, 'shift', 'z'], () => {
e.inputEvent.preventDefault();
services?.editorService.redo(); services?.editorService.redo();
}) })
.keydown('up', (e) => { .keydown('up', () => {
e.inputEvent.preventDefault();
services?.editorService.move(0, -1); services?.editorService.move(0, -1);
}) })
.keydown('down', (e) => { .keydown('down', () => {
e.inputEvent.preventDefault();
services?.editorService.move(0, 1); services?.editorService.move(0, 1);
}) })
.keydown('left', (e) => { .keydown('left', () => {
e.inputEvent.preventDefault();
services?.editorService.move(-1, 0); services?.editorService.move(-1, 0);
}) })
.keydown('right', (e) => { .keydown('right', () => {
e.inputEvent.preventDefault();
services?.editorService.move(1, 0); services?.editorService.move(1, 0);
}) })
.keydown([ctrl, 'up'], (e) => { .keydown([ctrl, 'up'], () => {
e.inputEvent.preventDefault();
services?.editorService.move(0, -10); services?.editorService.move(0, -10);
}) })
.keydown([ctrl, 'down'], (e) => { .keydown([ctrl, 'down'], () => {
e.inputEvent.preventDefault();
services?.editorService.move(0, 10); services?.editorService.move(0, 10);
}) })
.keydown([ctrl, 'left'], (e) => { .keydown([ctrl, 'left'], () => {
e.inputEvent.preventDefault();
services?.editorService.move(-10, 0); services?.editorService.move(-10, 0);
}) })
.keydown([ctrl, 'right'], (e) => { .keydown([ctrl, 'right'], () => {
e.inputEvent.preventDefault();
services?.editorService.move(10, 0); services?.editorService.move(10, 0);
}) })
.keydown('tab', (e) => { .keydown('tab', () => {
e.inputEvent.preventDefault();
services?.editorService.selectNextNode(); services?.editorService.selectNextNode();
}) })
.keydown([ctrl, 'tab'], (e) => { .keydown([ctrl, 'tab'], () => {
e.inputEvent.preventDefault();
services?.editorService.selectNextPage(); services?.editorService.selectNextPage();
}) })
.keydown([ctrl, '='], (e) => { .keydown([ctrl, '='], () => {
e.inputEvent.preventDefault();
services?.uiService.zoom(0.1); services?.uiService.zoom(0.1);
}) })
.keydown([ctrl, '-'], (e) => { .keydown([ctrl, 'numpadplus'], () => {
e.inputEvent.preventDefault(); services?.uiService.zoom(0.1);
})
.keydown([ctrl, '-'], () => {
services?.uiService.zoom(-0.1);
})
.keydown([ctrl, 'numpad-'], () => {
services?.uiService.zoom(-0.1); services?.uiService.zoom(-0.1);
}); });
}); });
onUnmounted(() => { onUnmounted(() => {
workspace.value?.removeEventListener('mouseenter', mouseenterHandler); workspace.value?.removeEventListener('mouseenter', mouseenterHandler);
workspace.value?.removeEventListener('mouseleave', mouseleaveHandler);
keycon.destroy(); keycon.destroy();
}); });