mirror of
https://github.com/Tencent/tmagic-editor.git
synced 2025-05-31 12:29:18 +08:00
feat(editor): feat(editor): 鼠标移出workpace,禁用快捷键
This commit is contained in:
parent
cf5e775b84
commit
fbd7f80c4f
@ -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();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user